Vous êtes sur la page 1sur 77

Cours : Logique Informatique

Plan

 Introduction
 Logique propositionnelle
 Logique des prédicats

2 Logique Informatique
Introduction
 Formaliser les règles de déduction : les règles de la logique
doivent permettre de dériver des énoncés vrais à partir de
prémisses.

 Exemple : syllogisme
1. Tous les hommes sont mortels.
2. Or X est un homme.
3. Donc X est mortel.

 Si les prémisses sont vrais (1 et 2), les règles de la logique


assurent que 3 est vrai, peu importe la valeur de X.

 En notation ensembliste, cela s’exprime ainsi :


si H ⊆ M et X ∈ H, alors X ∈ M.

3 Logique Informatique
Introduction
 19é siècle : la logique devient un outil scientifique (Boole,
Hilbert, Gödel, Church, Turing ...).
 Formaliser les mathématiques comme un langage.
 Formaliser le concept de démonstration.

 Définir des systèmes logiques tels que :


 tout ce qui est prouvable est valide (correction).
 tout ce qui est valide est prouvable (complétude).

 Gödel (1931) : dans un système logique qui permet


d’exprimer l’arithmétique, il existe des énoncés valides
qui ne sont pas prouvables (théorème d’incomplétude).
4 Logique Informatique
Introduction
 Les logiques sont utilisées en informatique pour modéliser
de manière formelle des “objets” rencontrés par les
informaticiens.
 Ex : Bases de données, bases de connaissances, pré-post
conditions d’une procédure, etc.

 Raisonner Après une phase de modélisation,


l’informaticien doit être capable de se servir du modèle, de
l’analyser de manière rigoureuse, voire d’automatiser cette
analyse.
 Ex : validation d’un modèle de données, prise de décision à
partir de faits et d’une base de connaissances, preuve de
correction d’une procédure/d’un programme ;

5 Logique Informatique
Exemple1
 Considérons la situation décrite par les affirmations suivantes :
1. Si le train arrive en retard et il n’y a pas de taxis à la gare alors l’invité
arrive en retard.
2. L’invité n’est pas en retard.
3. Le train est arrivé en retard.

 Et la déduction suivante : il y avait des taxis à la gare.

 Question : Pourquoi peut-on déduire qu’il y avait des taxis à la gare ?

 Premièrement, si on met l’affirmation 1 et l’affirmation 3 ensemble,


on peut affirmer que s’il n’y avait pas eu de taxis à la gare, alors
l’invité serait arrivé en retard. D’après l’affirmation 2, l’invité n’est
pas arrivé en retard. Donc il y avait des taxis à la gare.

6 Logique Informatique
Exemple2
 Considérons un autre exemple :
1. Si il pleut et l’invité a oublié son parapluie alors l’invité est trempé.
2. L’invité n’est pas trempé.
3. Il pleut.

 Et la déduction suivante : l’invité n’a pas oublié son parapluie.

 Question : Pourquoi peut-on déduire que l’invité n’a pas oublié son
parapluie ?

 Premièrement, si on met l’affirmation 1 et l’affirmation 3 ensemble,


on peut affirmer que si l’invité avait oublié son parapluie, alors il
serait trempé. D’après l’affirmation 2, l’invité n’est pas trempé.
Donc l’invité n’a pas oublié son parapluie.

7 Logique Informatique
La logique propositionnelle

 Langage : connecteurs, variables propositionnelles


 Modèles (sémantique) : validité, conséquence logique
 Preuve (axiomatique) : prouvabilité, déduction
 Propriétés : complétude, équivalences utiles
 Forme Normale Conjonctive (FNC)
 Démonstration automatique : méthode de balayage

8 Logique Informatique
Calcul propositionnel

 Une proposition est une entité qui est soit vraie (1) soit
fausse (0)

 Le calcul propositionnel est donc une interprétation du


calcul booléen quand 1 est interprété comme Vrai et 0
comme Faux

 Le calcul propositionnel est donc une algèbre de Boole où


les variables (les lettres), appelées variables
propositionnelles, représentent des propositions.
9 Logique Informatique
Des expressions booléennes aux formules
de logique propositionnelle

 Il est d’usage de noter p, q, r, … les variables


propositionnelles,

 Il est d’usage aussi de noter des symboles appelés des


connecteurs :
 ∨ ce qu’on avait noté +,
 ∧ pour ×,
 ¬ pour ~

10 Logique Informatique
Conjonction, disjonction et négation
 Les connecteurs ∧ et ∨ permettent de définir les propositions p∧q et p∨q, dont les
valeurs de vérité sont calculées au moyen des tables suivantes (appelées tables de
vérité) :

P Q p∨q P q p∧q
1 1 1 1 1 1 P ˥P
1 0 1 1 0 0 1 0
0 1 1 0 1 0 0 1
0 0 0 0 0 0

 p∨q se lit : p ou q
 p∧q se lit : p et q
 ¬p : la négation de p (se lit non p)
 p∨q est vrai si et seulement si l’un des deux (ou les deux) de p et de q est vrai
 p∧q est vrai si et seulement si p et q sont vrais simultanément

11 Logique Informatique
Implication
 Une autre manière de « découvrir » des connecteurs consiste à combiner entre eux ceux que nous
connaissons déjà…
 Ainsi, il est bien connu que… dire « qu’il n’y a pas de fumée sans feu » revient à dire que « s’il y a de la
fumée (quelque part) alors il y a du feu (pas loin!) »
 D’où l’idée de définir un connecteur correspondant à « si… alors… », noté ⇒, par: p ⇒ q =def ¬(p∧ ¬q)
≈ ¬p∨q
 Dans l’expression p ⇒ q, on dit souvent que p est la condition suffisante de q, ou que q est la condition
nécessaire de p,
 Il est facile d’en déduire la table de vérité de ce connecteur:

p q p⇒q
1 1 1
1 0 0
0 1 1
0 0 1
 p ⇒ q n’est faux que si p est vrai et que q est faux
 En particulier, p ⇒ q est vrai lorsque p est faux,
 p ⇒ q est vrai également lorsque q est vrai,

12 Logique Informatique
Formule d’équivalence de la LP
 Équiv. Connecteurs : P ⇒ Q  P  Q
P  Q  (P ⇒ Q)(Q ⇒ P)  (P  Q)  ( P   Q)
 Double négation : PP
 Lois de Morgan :  (P  Q)   P   Q
 (P  Q)   P   Q
 Idempotence : PPPPP
 Commutativité : PQQP
PQ QP
 Associativité : (P  Q)  R  P  ( Q  R)  P  Q  R
(P  Q)  R  P  ( Q  R)  P  Q  R
 Contradiction : P   P  Faux
 Tiers-exclus : P   P  Vrai
 Distributivité : P  (Q  R)  (P  Q)  (P  R)
P  (Q  R)  (P Ù Q)  (P Ù R)
 Absorption : P  (P  Q)  P
P  (P  Q)  P

13 Logique Informatique
Approche sémantique
 Modèle : Une interprétation I est un modèle d’une proposition logique P ssi
I(P)=V. On dit que P est satisfaisable.

 Tautologie : Une proposition logique P est dite tautologique ssi elle est
vraie pour toute interprétation I.
Notation : T

 Contradiction : Une proposition logique est dite contradictoire, ou in


satisfaisable, si elle n’admet aucun modèle.

 Définition (validité, satisfiabilité). Soit A une formule.


A est valide (ou tautologique) si I(A) = 1 pour toute interprétation I. Sinon A
est invalide ou falsifiable.

A est satisfiable ssi il existe une interprétation I tel que. I(A) = 1. Sinon A
est insatisfiable ou contradictoire.

14 Logique Informatique
Approche sémantique
 Equivalence : Deux propositions logiques A et B sont équivalentes
logiquement ssi elles ont la même valeur de vérité pour toute
interprétation
Notation : A  B

 Conséquence logique : Une proposition logique B est la


conséquence logique d’une proposition logique A ssi tout modèle de
A est un modèle de B
Notation : A  B

 Raisonnement valide : Un raisonnement est dit valide ssi sa conclusion est


la conséquence logique de ses prémisses.
Notation : P1, …, Pn  B

 Remarque : L'ensemble G peut ne contenir qu'une seule formule... Ou être vide (dans ce
dernier cas, A est en fait une tautologie).

15 Logique Informatique
Formalisation logique
Exemple du train Exemple du parapluie Proposition

Le train est arrivé en retard Il pleut p

Il y a des taxis à la gare L’invité a son parapluie q

L’invité est en retard L’invité est mouillé r

 Démonstration
1) Hypothèse : si p et non q, alors r
2) Hypothèse : p
3) Hypothèse : non r
4) Déduction : si non q alors r
5) Déduction : comme non r, alors q.

16 Logique Informatique
Formalisation logique
 Alors nous pouvons formaliser les situations décrites par
la formule logique suivante :
((p ∧ ¬q) → r ) ∧ ¬r ∧ p

 Et nous pouvons formaliser la déduction par :


((p ∧ ¬q) → r ) ∧ ¬r ∧ p |= q

 Où “|=” se lit : “q est une conséquence logique de :


((p∧¬q) → r )∧¬r ∧p”.

17 Logique Informatique
Logique propositionnelle
 les propositions sont représentées par des variables propositionnelles p, q, r,
...

 les formules sont des suites de symboles construites à partir des variables
propositionnelles et des connecteurs Booléens ∧, ∨, ¬, →,. . .. On parlera de
syntaxe. Ex : (p ∧ q) → (p ∨ q).

 La sémantique des formules est définie en interprétant les variables


propositionnelles par des valeurs Booléennes vrai () et faux (⊥), et en
interprétant les connecteurs Booléens comme des fonctions Booléennes.

 Une formule est valide si elle est vraie pour tout interprétation de ses
variables. Ex : p → p, p ∨ ¬p, p → (q → (p ∧ q)).

 Questions : comment décider si une formule est valide ? comment faire le


lien entre la syntaxe et la sémantique (prouvabilité vs validité) ?

18 Logique Informatique
Preuve (axiomatique) : prouvabilité,
déduction
 Définition (prouvabilité, consistance).
Soit A une formule.
A est prouvable (noté |- A) si il existe une preuve de A.
A est consistante si ~A n'est pas prouvable. Sinon A est inconsistante.

 Définition (déduction). Une déduction d'une formule A à partir d'hypothèses B1,...,Bm (noté B1,...,Bm |- A)
est une liste finie de formules (A1, ... ,An) t.q.
 An = A
 pour i = 1, ...,n, la formule Ai est
 soit un axiome, (Proposition primitive considérée comme non démontrable et admise a priori)
 soit égal à une des hypothèses Bj,
 soit obtenue par application de la règle de Modus Ponens à partir de deux prémisses Aj, Ak précédant Ai dans la
liste.

 Exemples de déductions
 p |- p
 p , q |- p
 p , q |- q
 p , q |- q & p
 p , p -> q |- q

19 Logique Informatique
Forme Normale Conjonctive (FNC)
 Mise en forme normale = simplification de formules
complexes
 Souvent, étape préalable des procédures de démonstration
automatique

 Définition (littéral, clause, forme normale conjonctive)


 Un littéral est une formule atomique ou la négation d'une formule
atomique.
 Une clause est une disjonction de littéraux.
 Une formule est en forme normale conjonctive si elle est une
conjonction de clauses.

20 Logique Informatique
Exemples
 Forme Normale Conjonctive (FNC) pas en forme NC
 p v ˥q FALSE
 ˥p ∧ q p -> q
 ˥p ∧ p ˥ ˥p
 (˥p v q) ∧ r ˥(p ∧ q)
 (˥p v q) ∧ (r v ˥s) (˥(p ∧ q) v r)

 Notation : nous utilisons L, L1 , L2 ... pour des littéraux,


et C, C1 , C2 ... pour des clauses.

21 Logique Informatique
FNC : Notation
 On suppose que les disjonctions et conjonctions sont
parenthésées à gauche :

 une clause L1 v L2 v ... v Ln est ((...(L1 v L2) v ...) v Ln),


 une conjonction de clauses C1 ∧ C2 ... ∧ Cm est ((...(C1 ∧ C2)
...) ∧ Cm).

 Ceci est justifié par l’associativité de la conjonction et de


la disjonction.

 Par convention, une disjonction de 0 littéraux est FALSE


(la clause vide), et une conjonction de 0 clauses est TRUE.

22 Logique Informatique
Algorithme de mise en œuvre en FNC
Entrée : une formule A,
Sortie : une formule en forme normale conjonctive
début
1. éliminer ->, <->, FALSE;
2. appliquer autant que possible les équivalences suivantes (en
remplaçant le membre gauche par le membre droit), dans n'importe
quel ordre :
 ˥ ˥ A <-> A
 ˥(A  B) <-> ˥ A ∧ ˥ B
 ˥(A ∧ B) <-> ˥ A  ˥ B
 A  (B ∧ C) <-> (A  B) ∧ (A  C)

fin

23 Logique Informatique
Equivalences permettant d’éliminer des connecteurs
 élimination de l'implication :
A -> B <-> ˥ A v B

 élimination de l'équivalence :
(A <-> B) <-> (A -> B)  (B -> A)

 élimination de FALSE :
FALSE <-> p  ˥ p (pour un p quelconque)

 élimination de la négation :
˥ A <-> A -> FALSE

24 Logique Informatique
Equivalences permettant d’éliminer des connecteurs
 éliminations de la disjonction :
A  B <-> ˥(˥ A  ˥ B)
A  B <-> (A -> FALSE) -> B

 éliminations de la conjonction :
A  B <-> ˥(˥ A  ˥ B)
A  B <-> (A -> (B-> FALSE)) -> FALSE

25 Logique Informatique
Equivalences et propriétés algébriques des connecteurs
 idempotence de ˥ : ˥ ˥ A <-> A

 idempotence de  et  : A  A <-> A
A  A <-> A

 associativité de  et  :
 A  (B  C) <-> (A  B)  C
 A  (B  C) <-> (A  B)  C

 commutativité de  et  :
 A  B <-> B  A
 A  B <-> B  A

 distributivité (lois de De Morgan) :


 (A  B)  C <-> (A  C)  (B  C)
 (A  B)  C <-> (A  C)  (B  C)

26 Logique Informatique
Exemples
 (p  q)  (r  s) :
1. ((p  q)  r)  ((p  q)  s)
2. ( p  r)  ( q  r)  ((p  q)  s)
3. ( p  r)  ( q  r)  ( p v s)  ( q  s)

 (p -> q) -> p :
1. ˥(˥ p  q)  p
2. (˥ ˥ p  ˥ q)  p
3. ( p  ˥ q)  p
4. (p  p) (˥ q  p)

27 Logique Informatique
Démonstration automatique
 Nécessité d'une procédure de décision : comment savoir si
une formule donnée A est valide ?

 Problème de l'explosion combinatoire lorsqu'on utilise


directement la définition de la validité:
 Une méthode naïve consiste à vérifier, pour toute interprétation
I, si I(A) = 1. En ne considérant que les atomes p1,...,pn
apparaîssant dans A, le nombre de vérifications est exponentiel
en n (la table de vérité pour A aura 2n lignes).

28 Logique Informatique
Démonstration automatique
 Tandis que les tables de vérité explorent donc `en bloc'
toutes les valeurs de vérité possibles pour les atomes,
=> ceci sera fait d'une manière incrémentale dans la méthode de
balayage.

 Problème de trouver les `bonnes formules‘ lorsqu'on


utilise directement la définition de la prouvabilité.

29 Logique Informatique
Algorithme de balayage
entrée : une formule A sortie : TRUE ou FALSE
Début
1. Éliminer ->, <->
2. tant que non(A = TRUE) et non(A = FALSE) faire
 choisir une variable propositionnelle p apparaissant dans A ;
 remplacer A par la formule A [p\TRUE]  A[p\FALSE];
 appliquer autant que possible les équivalences suivantes (en remplaçant le membre gauche par le
membre droit), dans n'importe quel ordre :
 ˥ FALSE <-> TRUE
 ˥ TRUE <-> FALSE
 B  TRUE <-> TRUE
 B  FALSE <-> FALSE
 B  TRUE <-> B
 B  FALSE <-> B
fin tant que
Fin

Remarque: La liste des équivalences utilisées n'est pas complète : on a


supposé implicitement que la commutativité de  et de  est exploitée

30 Logique Informatique
Exemple
 (p → q) → p :

 élimination de →
˥(˥ p v q) v p
 choix de p et substitution
(˥(˥ TRUE v q) v TRUE)  (˥(˥ FALSE v q) v FALSE)
 simplification
1. TRUE  ˥(˥ FALSE v q)
2. ˥(˥ FALSE v q)
3. ˥(TRUE v q)
4. ˥ TRUE
5. FALSE

31 Logique Informatique
Exemple
 La même formule, en commençant par substituer q :

 élimination de →
˥(˥ p v q) v p
 choix de q et substitution
(˥(˥ p v TRUE) v p)  (˥(˥ p v FALSE) v p)
 simplification
(˥ TRUE v p)  (˥ ˥ p v p)
(FALSE v p)  (˥ ˥ p v p)
p  (˥ ˥ p v p)
 choix de p et substitution
(TRUE  (˥ ˥ TRUE v TRUE))  (FALSE  (˥ ˥ FALSE v FALSE))
 simplification
(˥ ˥ TRUE v TRUE)  FALSE
FALSE

32 Logique Informatique
Remarque
L’exemple montre que le choix de l'atome à substituer est
crucial.
=> une heuristique possible est de choisir l'atome qui a le
plus d'occurrences dans A.

 Théorème. Pour tout entrée A, l'algorithme de balayage


s'arrête. Il retourne TRUE si A est valide, et FALSE sinon.

33 Logique Informatique
Vers plus d’expressivité
 Phrase : Pour jouer au barbu, il faut un jeu de 54 cartes.
clé : p : « on joue au barbu » ;
q : « on a un jeu de 54 cartes ».

(p → q) Ici il faut utiliser une astuce pour pallier à la pauvreté du


langage de la logique propositionnelle.

 Il faut être sûr que la ou les personnes qui


jouent au barbu sont bien celles aussi qui ont un jeu de 54
cartes => on utilise le pronom on (ou nous ou un autre
déictique) dans les clés.

>>☺ l’intérêt de passer à un langage plus élaboré, celui de la


logique des prédicats.
34 Logique Informatique
La logique des prédicats

 Langage : variables d'individu, substitution de variables


 Modèles (sémantique)
 Preuve (axiomatique)
 Propriétés : complétude, équivalences utiles
 Formes normales : prénnexe, de Skolem, clausale

35 Logique Informatique
Vers plus d’expressivité
 Phrase : Chaque étudiant est plus jeune qu’un professeur.

 Nous pouvons identifier cette phrase avec une variable


propositionnelle p.

 La logique propositionnelle n’est pas assez fine pour modéliser


cette situation de manière précise

 Décomposition : Quels sont les éléments essentiels de cette


phrase ?
1. être un étudiant
2. être un professeur
3. être plus jeune que quelqu’un d’autre

36 Logique Informatique
Vers plus d’expressivité : variables, quantificateurs
 De manière générale, on utilise :

 Des variables x, y, z, pour abstraire des valeurs concrètes :


1. E(x) : x est un étudiant
2. P(y) : y est un professeur
3. J(x, y) : x est plus jeune que y
Ce raisonnement repose sur une analyse plus fine des énoncés en
termes d'énoncés génériques et énoncés singuliers : Il utilise
les notions d'objet (x) et de propriété des objets (est un
étudiant).

 Des quantificateurs :
 universel ∀, pour tout
 existentiel ∃, il existe

37 Logique Informatique
La logique des prédicats
 Phrase : Chaque étudiant est plus jeune qu’un professeur.

 Voici comment représenter cette phrase en logique du


premier ordre (appelée aussi logique des prédicats) :
∀x : (E(x) → (∃y : P(y) ∧ J(x, y)))

 qui se lit : “pour tout x, si x est un étudiant, alors il existe


y tel que y est un professeur et x est plus jeune que y.

38 Logique Informatique
Exemple1
 Considérons les prédicats suivants :
 O(x) : x est un oiseau
 V(x) : x sait voler

 et les phrases suivantes :


 Il n’est pas vrai que tous les oiseaux savent voler
¬(∀x : (O(x) → V(x)))

 Il existe un oiseau qui ne sait pas voler :


∃x : O(x) ∧ ¬V(x)

39 Logique Informatique
Remarque

 La logique des prédicats est aussi appelée logique du


premier ordre, par opposition à la logique de second ordre
et aux logiques d'ordre supérieur (qui contrairement à la
logique des prédicats permettent de représenter la théorie
des ensembles).

 La logique propositionnelle peut alors être vue comme


logique d'ordre 0.

40 Logique Informatique
Langage : Alphabet
 L'alphabet de la logique des prédicats est constitué de:
 un ensemble dénombrable de symboles de prédicats à 0, 1, ou plusieurs
arguments, notés p, q, r, ..., homme, père, ...
 un ensemble dénombrable de variables d'objets (ou variables d'individu),
notées x, y, z, x1, x2, ...
 un ensemble dénombrable de fonctions à 0, 1, ou plusieurs
 arguments, notées f, g, ... , père-de, ...
 les quantificateurs , 
 les connecteurs FALSE, , , ,  ainsi que les parenthèses de la logique
propositionnelle.

 Les fonctions à 0 arguments sont appelées constantes (souvent


notées a, b, ...).
 Les prédicats à 0 arguments ne sont rien d'autre que des
variables propositionnelles

41 Logique Informatique
Langage : Terme
 L'ensemble des termes est le plus petit ensemble de mots
construits sur l'alphabet de la logique des prédicats tel que
:
 toute variable est un terme
 f(t1,...,tn) est un terme si f est une fonction à n arguments et t1,...,tn sont
des termes

42 Logique Informatique
Langage : Formule bien Formées (FbF)
 L'ensemble FOR des formules (ou formules bien
formées) de la logique des prédicats est le plus petit
ensemble de mots construits sur l'alphabet tel que :
 si p est un prédicat à n arguments et t1,...,tn sont des termes alors
p(t1,...,tn) est une formule (appelée formule atomique),
 (Q x A) est une formule si A est une formule, Q un quantificateur et x
une variable
 FALSE est une formule
 ( A) est une formule si A est une formule
 (A  B), (A  B), (A  B) sont des formules si A et B sont des
formules.

43 Logique Informatique
Exemples de traduction
 Tout est relatif.
 x relatif(x)
 Une porte est ouverte ou fermée.
 x (porte(x)  (ouvert(x)  fermé(x)))
 Tout ce qui brille n'est pas or.
 x (brille(x)   or(x))
 Il y a des peines, il y a des plaisirs, mais aucune peine n'est un plaisir.
 ( x peine(x))  ( x plaisir(x))  x (peine(x)   plaisir(x))
 Tous les chemins mènent à Rome.
 x (chemin(x)  mène-à-Rome(x))
 Pour tout entier il existe un entier plus grand.
  x (entier(x)  y (entier(y)  plus-grand(y,x)) )
 Il existe un plus grand entier.
 x (entier(x)  y (entier(y)  plus-grand(x,y)) )

44 Logique Informatique
Variables libres, variables liées
 Dans les formules (x A) et (x A) , A est appelée la
portée du quantificateur.

 Une occurrence d'une variable est libre si elle n'est dans la


portée d'aucun quantificateur. Sinon elle est liée.

 Une formule est fermée (ou close) si elle ne contient pas


de variables libres. Sinon elle est ouverte.

45 Logique Informatique
Variables libres, variables liées : exemples
 A = y ((p(x)  x p(x))  q(y))
 la première occurrence de x est libre, tandis que la deuxième
occurrence est liée. L'occurrence de y est liée.
 A = y ((p(x)  x p(x))  q(y))
 La formule A est ouverte, car il y a une occurrence de variable
libre.
 B = x y ((p(x)  x p(x))  q(y))
 La formule B est fermée (c'est la fermeture universelle de A).
 C = x y ((p(x)  x p(x))  q(y))
 La formule C est fermée (c'est la fermeture existentielle de A).

46 Logique Informatique
Substitution de variables
 Une substitution de variables est une application des variables
dans les termes qui est l'identité presque partout.

 L'application d'une substitution à une expression E est le


résultat du remplacement simultanée de toutes les occurrences
libres des variables dans E par leur terme associé.

 Si E est une expression alors (E)s est appelé une instance de E.

 La composition de substitutions est la composition de


fonctions.

47 Logique Informatique
Exemple
 Soit {x1 , ... , xn} l'ensemble des variables tel que s(x) est
différent de x. La substitution s est alors notée s = {x1\t1 ,
... , xn\tn}.
 Exemples:
 (p(x)  q(x,y)){x\z} = p(z)  q(z,y)
 (p(x)  q(x,y)){x\y} = p(y)  q(y,y)
 (x q(x,y)){x\z} = x q(x,y)
 (p(x) v q(x,y)){x\z,y\z} = p(z)  q(z,z)
 (p(x)  q(x,y)){x\f(x)} = p(f(x))  q(f(x),y)

48 Logique Informatique
Théorie des modèles
 On fixe d'abord un ensemble de modèles (aussi appelés
valuations ou interprétations).

 Ensuite, pour un modèle donné, on stipule des conditions


de vérité permettant d'établir pour n'importe quelle
formule A du langage si A est vraie ou fausse dans ce
modèle.

 Pour donner un `sens' aux variables, constantes et


fonctions du langage, il faut un domaine d'objets (ou
domaine d'individus, ou univers de discours).

49 Logique Informatique
Théorie des modèles
 Ensuite, pour pouvoir donner un `sens' aux formules, il
faut une fonction associant à chaque symbole de prédicat à
n places l'ensemble des n-uplets d'éléments du domaine
qui le rendent vrai.

 Finalement, l'interprétation des formules se fait comme en


logique propositionnelle, avec comme interprétation de la
quantification universelle  x A `A est vrai pour toute
interprétation de x'.

50 Logique Informatique
Interprétation
 But : donner une valeur de vérité aux formules

 Une interprétation I d'une formule F est basée sur :


 un ensemble de définition D, non vide, appelé domaine
 à chaque symbole de constante de F est associé un élément de D
 à chaque symbole de variable de F est associé la variable elle-même
 à chaque symbole de fonction de F est associée une fonction de Dn dans
D
 à chaque symbole de prédicat de F est associé une fonction de Dn dans
{0,1}
 à chaque connecteur d'arité i est associée une fonction de {0,1}i dans
{0,1}
a ˥a  1 0  1 0  1 0

 1 0 1 1 1 1 1 0 1 1 0
 0 1 0 1 0 0 0 0 0 1 1

51 Logique Informatique
Interprétation
 si F = x G(x,y1,..,yn) (G formule dépendant de x et des variables libres
y1,..,yn), pour tout (a1,..,an) de Dn, I(F)(a1,..,an) vaut 1 si pour tout a de D,
I(G) (a, a1,..,an) = 1, et vaut 0 sinon

 si F = x G(x,y1,..,yn) (G formule dépendant de x et des variables libres


y1,..,yn), pour tout (a1,..,an) de Dn, I(F)(a1,..,an) vaut 1 s'il existe a de D
telle que I(G)(a, a1,..,an) = 1, et vaut 0 sinon

 Toute formule close peut donc être interprétée dans {0,1}


 Une interprétation d'une formule contenant i variables libres donne
une application de Di dans {0,1}.
 Une formule peut être ainsi vue comme une fonction booléenne de
ses variables libres dans {0,1}.

 Une interprétation d'une formule est un modèle de cette formule si la


formule est vraie pour cette interprétation

52 Logique Informatique
Exemple d’interprétations
 Interprétons F = x p(x)⇒q(x) sur le domaine {a,b,c}
 Deux interprétations possibles de la formule

x I(p)(x) I(q)(x) I(p⇒q)(x)


a 1 1 1
b 0 0 1 F est vraie

c 1 0 1

x I(p)(x) I(q)(x) I(p⇒q)(x)


a 0 1 0
F est fausse
b 0 1 0
c 1 0 1

53 Logique Informatique
Exemple(1)
 Soit le domaine d'individus :
D = {Alice, Bernard, Christian}.

 Soit l'interprétation de variables telle que :


I(x) =Alice, I(y) = Bernard, I(z) = Christian.

 Soit l'interprétation des prédicats telle que :


I(aime) ={ (Alice,Bernard) , (Bernard,Alice) ,(Christian,Alice) }.

54 Logique Informatique
Exemple(2)

I est un modèle de I n'est pas un modèle de


aime(z,x) aime(x,z)
z aime(x,z) z aime(z,x)
x ˥aime(x,x) x aime(x,x)
x y aime(x,y) y x aime(x,y)
 x  y aime(x,y)  x  y aime(x,y)
 u  v (aime(u,v)  aime(v,u))  y x aime(x,y)

55 Logique Informatique
Equivalences
 Deux formules f et f' sont sémantiquement équivalentes si pour toute interprétation I,
I(f) = I(f'), c'est à dire que leur tables de vérité sont les mêmes (on note f ≡ f')

 Quelques équivalences utiles :


 p  q ≡ ¬ p q
 p¬p≡0
 p¬p≡1
 ¬ (¬ p) ≡ p
 ¬ (p  q) ≡ ¬ p  ¬ q (loi de Morgan)
 ¬ (p  q) ≡ ¬ p  ¬ q (loi de Morgan)
 p  q ≡ q  p et p  q ≡ q  p (symétries de  et )
 associativités de  et 
 p  1 ≡ 1 et p  0 ≡ 0 (absorption)
 p  1≡ p et p  0 ≡ p (élément neutre)

56 Logique Informatique
Validité et satisfiabilité
 Une formule est valide (tautologie) si elle est vraie
quelque soit l'interprétation (si toute interprétation est un
modèle)
exemple : x ¬ p(x)  p(x)

 Une formule est consistante (ou satisfiable) s'il existe une


interprétation dans laquelle elle est vraie
exemple : x ¬ p(x)

 Une formule est insatisfiable (ou inconsistante) s'il


n'existe pas d'interprétation dans laquelle elle est vraie
exemple : ¬ p(x)  p(x)
57 Logique Informatique
Validité et satisfiabilité

Formules valides Formules insatisfiables


( x p(x))  p(y) x (p(x)   p(x))
(x p(x))  (x p(x)) (x p(x))  (z  p(z))
p(x)  (x p(x)) (x p(x))  (x  p(x))
 x (p(x)  (x p(x))) x (p(x)  ( x  p(x)))
( x y p(x,y))  (y  x p(x,y))

58 Logique Informatique
Conséquence logique (sémantique)
 Un ensemble de formules {f1, .. , fn} satisfait une formule
f si pour toute interprétation I, pour tout i=1..n, si I(fi) = 1
alors I(f) = 1, c'est-à-dire si tout modèle de {f1, .. , fn} est
aussi modèle de f. On note {f1, .. , fn} ╞ f.

 On dit aussi que f est conséquence logique de {f1, .. , fn}

 Exemples:
 {x p(x)} |= p(y)
 {x p(x)} |= x p(x)
 x (p(x)  q(x)) , y p(y) } |= y q(y)

59 Logique Informatique
Conséquence logique (sémantique)

 La notion de conséquence logique oblige, pour vérifier


qu'une formule est satisfaite par des hypothèses, à utiliser
un domaine et à assigner des valeurs de vérités.
 Il s'agit d'une méthode sémantique

60 Logique Informatique
Théorie de la preuve (syntaxique)

 La notion de démonstration (ou de preuve) est purement


syntaxique : on applique formellement des règles pour
passer mécaniquement des hypothèses à la formule

61 Logique Informatique
Théorie de la preuve (syntaxique)
 Définition (axiomatique à la Hilbert). Les schémas d'axiome de la logique
des prédicats sont :

 Ceux de la logique propositionnelle,


 Plus
 x A  ((A){x\t})
 (A){x\t}  x A (où {x\t} est une substitution quelconque),

 et les règles d'inférence sont le Modus Ponens :


A AB
_____________
B

 plus les deux règles pour les quantificateurs


A B
_____________ s'il n'y a pas d'occurrence libre de x dans A
A  (x B)
Et
A B
_____________ s'il n'y a pas d'occurrence libre de x dans B
(x A)  B

62 Logique Informatique
Adéquation, complétude

 Théorème d'adéquation.
Si |- A alors |= A.

 Théorème de complétude.
Si |= A alors |- A.

63 Logique Informatique
Equivalences
 Equivalences propositionnelles : Ces principes peuvent
être `importées' de la logique propositionnelle:
 Théorème de remplacement des équivalences,
 Équivalence permettant d’éliminer les connecteurs,
 Propriétés algébriques.

 Equivalences relatives aux quantificateurs


 Ce sont les principes de base pour pouvoir mettre en forme normale.

64 Logique Informatique
Equivalences
 Fermeture universelle : soit A sans occurrence libre de x.
Alors |- A ssi |- x A

 Fermeture existentielle : soit A sans occurrence libre de x.


Alors A est satisfiable ssi x A est satisfiable

 Quantification répétée :
|- (Q1 x Q2 x A) ↔ Q2 x A

 Quantification sans variable libre : soit A sans occurrence libre


de x. Alors
 |- (Q x A) ↔ A
 |- (A){x\t} ↔A

65 Logique Informatique
Equivalences
 Renommage : |- (Q x A) ↔ Q y (A){x\y}

 Les deux cas où la distribution est possible :


 |- (x A)  (x B) ↔ x (A  B)
 |- (x A)  (x B) ↔ x (A  B)

 Elargissement de la portée des quantificateurs : soit B sans


occurrence libre de x. Alors
 |- (Qx A)  B ↔ Qx (A  B)
 |- (Qx A)  B ↔ Qx (A  B)
 Remarques : Ces équivalences ne sont pas prouvables si x a des
occurrences libres dans B : (x p(x))  p(x) n'est pas
équivalent à : x (p(x)  p(x)) .

66 Logique Informatique
Equivalences : exemple
 |- (x y (p(x)  q(y))) ↔ x (p(x)  q(x))
 On utilise les équivalences suivantes.
 x y (p(x)  q(y))
 ↔ x (p(x)  y q(y))
 ↔ (x p(x))  y q(y)
 ↔ (x p(x))  x q(x)
 ↔ x (p(x)  q(x))

 On utilise donc successivement


1. l'élargissement de la portée de y (car il n'y a pas d'occurrence libre de y dans
p(x))
2. l'élargissement de la portée de x, (car il n'y a pas d'occurrence libre de x dans
y q(y))
3. le renommage de y
4. la distributivité de x sur la conjonction.

 Ainsi que le fait que le remplacement des équivalences est valide.

67 Logique Informatique
Formes Normales
 Problème : pour une formule A de la logique des prédicats
il n'existe pas toujours une formule en forme normale
conjonctive équivalente (comme c'est le cas en logique
propositionnelle).

 Il sera cependant possible d'obtenir une formule A' telle


que A est satisfiable ssi A' est satisfiable. On procède en
trois étapes :
 mise en forme normale prénexe : séparation en une suite de
quantificateurs et une formule sans quantificateurs (la matrice),
 mise en forme normale de Skolem : élimination des quantificateurs
existentiels,
 mise en forme normale conjonctive de la matrice, en utilisant le même
algorithme qu'en logique propositionnelle

68 Logique Informatique
Forme normale prénexe
 Définition : Une formule A est en forme normale prénexe si
elle est de la forme Qx1 ... Qxn B , où B est une formule sans
quantificateurs.
 La suite des quantificateurs est appelée préfixe, et B est
appelée matrice.

 Exemples:
 La formule p(x)  p(y) est en forme normale prénexe.
 La formule x y ( (p(x)  q(x,y))  r(z)) est en forme normale
prénexe. x y est le préfixe, et (p(x)  q(x,y))  r(z) est la matrice.

 Remarque : x ( (p(x) → x p(x) ) n'est pas en forme normale


prénexe.

69 Logique Informatique
Algorithme de mise en forme prénexe
Entrée : une formule A Sortie : une formule en forme normale prénexe
Début
 Eliminer →, ↔, FALSE;
 Appliquer autant que possible les équivalences suivantes, dans n'importe quel ordre (en remplaçant le
membre gauche par le membre droit) :
 A↔A
  (A  B) ↔  A   B
  (A  B) ↔  A   B
  (x A) ↔ x  A
  (x A) ↔ x  A
 Tant que il existe une sous-formule Q x B telle que x apparaît en dehors de B dans A faire
 remplacer Qx B par Qy (B){x\y} , où y est une nouvelle variable (n'apparaissant pas dans A) ;
 fin tant que;
 Appliquer autant que possible les équivalences suivantes, dans n'importe quel ordre (en
remplaçant le membre gauche par le membre droit) :
 (Qx A)  B ↔ Qx (A  B)

 (Qx A)  B ↔ Qx (A  B)
 A  (Qx B) ↔ Qx (A  B)
 A  (Qx B) ↔ Qx (A  B)

fin ;

70 Logique Informatique
Exemple
 Soit la formule : x ( p(x) → x p(x) )
1. Éliminer → : x (p(x)  x p(x) )
2. Renommer  x p(x) en  y p(y) : x (p(x)  y p(y) )
3. Sortir  y : x y (p(x)  p(y))

 Remarque : le renommage est essentiel ici ; p.ex.


x (p(x)  x p(x)) n'est pas équivalent à : x x (p(x) 
p(x) )

71 Logique Informatique
Forme normale de Skolem

 Définition : Une formule est en forme normale de Skolem si


elle est en forme normale prénexe et ne contient pas de
quantificateur existentiel.

 Exemple : La formule x (p(x) p(y)) est en forme normale


de Skolem.

 Remarque :
 La formule x y ((p(x)  q(x,y)) v r(z)) n'est pas en forme normale
de Skolem, à cause de l'occurrence du quantificateur existentiel y.

 Dans une formule en forme normale de Skolem il peut y avoir des


variables libres (comme z dans notre exemple).

72 Logique Informatique
Algorithme de mise en forme normale de Skolem
Entrée : une formule A
Sortie : une formule en forme normale de Skolem
Début
 Mettre A en forme normale prénexe;
 pour tout quantificateur existentiel x apparaissant dans A
faire
 appliquer la substitution {x\f(x1,...,xn)} à la matrice de A , où x1,...,xn
sont les quantificateurs universels précédant x dans le préfixe de A; f
est une nouvelle fonction qui n'a pas encore été utilisée ;
 supprimer x du préfixe de A
 fin pour tout
Fin
Remarque : Si n = 0 on substitue par une constante.
73 Logique Informatique
Exemple

 Soit la formule : x y p(x,y)


Remplacer x par la constante a : y p(a,y)

 Soit la formule : x y p(x,y)


Remplacer y par la fonction f(x) : x p(x, f(x))

74 Logique Informatique
Forme Normale Clausale
 Définition : Une formule est en forme normale clausale si elle
est en forme normale de skolem, fermée et sa matrice est en
forme normale conjonctive propositionnelle.

 Exemple1: la formule x y (p(x)  p(y)) est en forme


normale clausale.

 Exemple2: la formule x y ( (p(x)  q(x,y))  r(z)) n'est pas


en forme normale clausale pour deux raisons :
 d'une part, la matrice n'est pas en forme normale conjonctive ;
 d'autre part, elle n'est pas fermée car la variable z a une occurrence
libre.

75 Logique Informatique
Forme normale clausale: Algorithme
Entrée : une formule A
Sortie : une formule en forme normale clausale
Début
 pour tout variable x apparaissant libre dans A faire
 Fermer A existentiellement: remplacer A par : x A
 fin pour tout;
 Mettre A en forme normale de Skolem;
 Mettre la matrice de A en forme normale conjonctive
Fin

76 Logique Informatique
Exemple
 Soit la formule : x ( p(x) x p(x) )
1- Mise en forme normale prénexe:
x y (p(x)  p(y))
2- Mise en forme normale de Skolem :
y (p(a)  p(y))
 qui est aussi sa forme normale clausale : l'ensemble de
clauses associé est : { {p(a)} , {p(y)} }

77 Logique Informatique

Vous aimerez peut-être aussi