Académique Documents
Professionnel Documents
Culture Documents
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.
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.
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.
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.
Question : Pourquoi peut-on déduire que l’invité n’a pas oublié son
parapluie ?
7 Logique Informatique
La logique propositionnelle
8 Logique Informatique
Calcul propositionnel
Une proposition est une entité qui est soit vraie (1) soit
fausse (0)
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 : PP
Lois de Morgan : (P Q) P Q
(P Q) P Q
Idempotence : PPPPP
Commutativité : PQQP
PQ QP
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
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
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
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
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).
Une formule est valide si elle est vraie pour tout interprétation de ses
variables. Ex : p → p, p ∨ ¬p, p → (q → (p ∧ q)).
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
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)
21 Logique Informatique
FNC : Notation
On suppose que les disjonctions et conjonctions sont
parenthésées à gauche :
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
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 ?
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.
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
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.
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 ».
35 Logique Informatique
Vers plus d’expressivité
Phrase : Chaque étudiant est plus jeune qu’un professeur.
36 Logique Informatique
Vers plus d’expressivité : variables, quantificateurs
De manière générale, on utilise :
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.
38 Logique Informatique
Exemple1
Considérons les prédicats suivants :
O(x) : x est un oiseau
V(x) : x sait voler
39 Logique Informatique
Remarque
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.
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.
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.
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).
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.
50 Logique Informatique
Interprétation
But : donner une valeur de vérité aux formules
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
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
c 1 0 1
53 Logique Informatique
Exemple(1)
Soit le domaine d'individus :
D = {Alice, Bernard, Christian}.
54 Logique Informatique
Exemple(2)
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')
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)
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.
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)
60 Logique Informatique
Théorie de la preuve (syntaxique)
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 :
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.
64 Logique Informatique
Equivalences
Fermeture universelle : soit A sans occurrence libre de x.
Alors |- A ssi |- x A
Quantification répétée :
|- (Q1 x Q2 x A) ↔ Q2 x A
65 Logique Informatique
Equivalences
Renommage : |- (Q x A) ↔ Q y (A){x\y}
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))
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).
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.
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))
71 Logique Informatique
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.
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
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.
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