You are on page 1of 488

Logique mathématique

pour l’informatique

P. Clemente

INSA Centre Val de Loire


Logique mathématique pour l’informatique
Introduction
Bibliographie

Bibliographie

Un livre assez complet sur la logique, pour l’informatique :


P. Gochet, P. Gribomont. Logique. Vol. 1 : méthodes pour
l’informatique fondamentale, Hermès, 1990.

Un ouvrage de référence sur la logique pour l’IA :


A. Thayse et coauteurs. Approche logique de l’Intelligence
Artificielle. Vol. 1, Dunod, 1990.

Le ouvrage plus récent :


N. Jussien Logique(s), langages formels et complexité pour
l’informatique, Hermès-Lavoisier, 2006.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 2/260


Logique mathématique pour l’informatique
Introduction
Bibliographie

Outils

Le prouver que nous allons utiliser en TD : Prouver 9


(https ://www.cs.unm.edu/ mccune/mace4/)
Un prouveur automatique de formule logiques
(http ://teachinglogic.liglab.fr/DN/index.php)
E Theorem Prover
(http ://wwwlehre.dhbw-stuttgart.de/ sschulz/E/Download.html)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 3/260


Logique mathématique pour l’informatique
Introduction
Une théorie mathématique

Qu’est que la logique (mathématique)

La logique est un outil formel. On devrait dire les logiques car


il en existe une infinité de variantes.
La logique utilise les mathématiques comme le font les autres
branches des mathématiques,
La logique étudie des sortes particulières d’objets
mathématiques : les propositions, les théorèmes, les jugements,
les démonstrations, etc.
Premier constat : la logique est donc une théorie mathématique.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 4/260


Logique mathématique pour l’informatique
Introduction
Une théorie mathématique

La logique pour les mathématiques

Comprendre la nature du raisonnement mathématique 1 , et la


validité de la notion de preuve, d’argumentations, de
démonstrations.
Faire du “raisonnement” une théorie mathématique comme les
autres.
Étudier les mathématiques, par les mathématiques.
Deuxième constat : la logique applique des mathématiques à des
mathématiques.
Question : la logique peut-elle s’appliquer à elle-même ?

1. et du raisonnement non mathématique !


P. Clemente - INSA Centre Val de Loire Dpt STI 3A 5/260
Logique mathématique pour l’informatique
Introduction
Une théorie mathématique

La logique pour les informaticiens


En informatique, on utilise beaucoup la logique :
Mécaniser les processus de raisonnement ;
Exemple
A et B permet de déduire C ; C et D permet E.
∀x, x = A, B, C, D, E.
Posons A = "il pleut", B="je suis dehors", C="je suis
mouillé", D="je suis nu", E= j’ai froid" ; et si on a A, B et
D qui sont vrais ;
Alors, on sait que l’on peut déduire C et E : "je suis mouillé"
et "j’ai froid".
Exhiber les liens entre démonstrations et calculs ;
Formaliser les objets d’un raisonnement par les mathématiques
et valider celui-ci par des mathématiques est un calcul.
Formaliser les objets informatiques.
Voir exemple de vérif. de protocole.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 6/260
Logique mathématique pour l’informatique
Introduction
Une théorie mathématique

La logique pour les informaticiens


En informatique, on utilise beaucoup la logique :
Mécaniser les processus de raisonnement ;
Exemple
A et B permet de déduire C ; C et D permet E.
∀x, x = A, B, C, D, E.
Posons A = "il pleut", B="je suis dehors", C="je suis
mouillé", D="je suis nu", E= j’ai froid" ; et si on a A, B et
D qui sont vrais ;
Alors, on sait que l’on peut déduire C et E : "je suis mouillé"
et "j’ai froid".
Exhiber les liens entre démonstrations et calculs ;
Formaliser les objets d’un raisonnement par les mathématiques
et valider celui-ci par des mathématiques est un calcul.
Formaliser les objets informatiques.
Voir exemple de vérif. de protocole.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 6/260
Logique mathématique pour l’informatique
Introduction
Applications

Applications directes ou indirectes en informatique

Conception de circuits électroniques numériques (algèbre de


Boole) ;
Vérification formelle de logiciels (Méthode/langage/atelier B -
Méteor) ;
Vérification formelle de protocoles (COQ : philosophes,
T = 1) ;
Programmation logique (programmation déclarative, n
versions de Prolog) ;
SGBD déductifs (e.g. Datalog), systèmes experts ; Web
Sémantique (RD

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 7/260


Logique mathématique pour l’informatique
Introduction
Applications

Démonstration automatique et preuve de théorèmes (parfois


jamais démontrés auparavant) ;
Programmation sûre formelle : méthode B - atelier B.
Simulation de raisonnements en intelligence artificielle ;
Sécurité informatique : traitement automatique de politiques
de sécurité ;
Traitement automatique de la langue ;
Agents intelligents et agents dialoguants.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 8/260


Logique mathématique pour l’informatique
Introduction
Applications

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 9/260


Logique mathématique pour l’informatique
Introduction
Applications

Formal Reaction Rules


Complexation: A + B => A-B. Decomplexation A-B => A + B.
cdk1+cycB  =>  cdk1±cycB

Phosphorylation: A =[K]=> A~{p}. Dephosphorylation A~{p} =[P]=> A.


Cdk1-­CycB  =[Myt1]=>  Cdk1~{thr161}-­CycB  
Cdk1~{thr14,tyr15}-­CycB  =[Cdc25~{Nterm}]=>  Cdk1-­CycB  

Synthesis: _ =[G]=> A.  Degradation: A =[C]=> _.    


_  =[#E2-­E2f13-­Dp12]=>  RNAcycA  

Transport: A::L1 => A::L2.


RNAcycA::nucleus  =>  RNAcycA::cytoplasm  
Cdk1~{p}-­CycB::cytoplasm  =>  Cdk1~{p}-­CycB::nucleus

25 ans du LIFO, Orléans, 14/03/12 François Fages

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 10/260


Logique mathématique pour l’informatique
Introduction
Applications

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 11/260


Logique mathématique pour l’informatique
Introduction
Applications

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 12/260


Logique mathématique pour l’informatique
Introduction
Applications

http ://www.irisa.fr/celtique/genet/Crypt/cours.pdf
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 13/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle

Chapitre 1.

Logique Propositionnelle

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 14/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Introduction

Plan : Chapitre 1. Logique Propositionnelle

Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 15/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Introduction

Introduction

La logique des propositions permet de représenter des propositions


simples, des faits du monde, tels que :
« x est un lièvre » et « y est une tortue » ;
ou des propositions conditionnées ou paramétrées :
« si x est arrivé, alors x est parti » ;
« si x et y sont partis en même temps alors y arrivera avant
x ».

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 16/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Introduction

Dans la logique des propositions, les variables ne prennent que


deux valeurs Vrai (V), Faux (F). Une variable propositionnelle
correspond à une variable de type booléen en Pascal, ADA, ...
On ne traite donc, dans le calcul des propositions, que des
expressions booléennes.
Le calcul des propositions est un modèle mathématique qui
permet de raisonner sur la nature vraie ou fausse des
expressions logiques.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 17/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Introduction

On distingue la syntaxe (règles d’écriture des formules) et la


sémantique (interprétation des formules).
Les formules peuvent être syntaxiquement représentées par des
suites de symboles ou par des arbres.
Le calcul des propositions traite du raisonnement sur les
propositions indépendamment de leur sens.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 18/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Introduction

Énoncés en langue naturelle

Une proposition est un énoncé qui peut être vrai ou faux. En


arithmétique :
1 + 1 = 2 est une proposition vraie
0 > 1 est une proposition fausse
Certains énoncés sont des propositions mais nous ne savons
pas si elles sont vraies ou fausses, c’est le cas de certaines
conjectures mathématiques ni démontrées ni invalidées.
Certains énoncés ne sont pas des propositions (i.e., ni vrai, ni
faux) :
"cet énoncé est faux" ;
"taisez-vous" ;
"c’est fini ?".

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 19/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Introduction

Vérité de langage

Considérons l’énoncé suivant :

"Un quart d’heure avant sa mort, il était encore en vie."

Pour déterminer l’exactitude de cet énoncé, il suffit de connaître le


sens des mots, cet énoncé est une vérité de langage.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 20/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Introduction

Vérité de fait

Considérons l’énoncé suivant :

"La Terre tourne"

Cet énoncé n’est pas une vérité de langage, car il exprime un fait
[quasiment] inconditionnel. Cet énoncé est une vérité de fait.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 21/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Introduction

Vérité logique
Considérons enfin l’énoncé suivant :

"[Si il se fait que] si il pleut, (alors) la route est mouillée, [alors il se


fait que] si la route n’est pas mouillée, (alors) il ne pleut pas."

Pour admettre ce second énoncé, il faut :


connaître le sens de certains connecteurs logiques (si ... alors,
ne ... pas) et
de savoir que les morceaux de phrase restant ("il pleut" et "la
route est mouillée") sont des propositions, c’est-à-dire des
énoncés suceptibles d’être vrais ou faux.
Cet énoncé reste vrai si l’on remplace les propositions par d’autres
propositions. De telles vérités de langage sont appelées vérités
logiques.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 22/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Plan : 1 - Chapitre 1. Logique Propositionnelle

Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 23/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Vocabulaire

Traditionnellement, le vocabulaire logique propositionnel est


formé :
d’un ensemble P infini dénombrable de propositions, désignées
par une lettre minuscule (p, q, ...), éventuellement indicée (p1 ,
p2 , ..., q1 , q2 , ...), et
d’un ensemble C de cinq connecteurs :

nom symbole usuel type symboles équivalents


négation ¬ monadique –, not, non
conjonction ∧ dyadique &, ., and, et
disjonction ∨ dyadique |, or, ou
implication ⇒ dyadique ⊃, →
équivalence ⇔ dyadique ≡, ↔

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 24/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Définitions

Les connecteurs classiques peuvent être définis à partir de la


négation et de l’implication avec les formules vraies suivantes :
def
(X ∨ Y ) ≡ (¬X ⇒ Y )
def
(X ∧ Y ) ≡ ¬(X ⇒ ¬Y )
def
(X ⇔ Y ) ≡ ((X ⇒ Y ) ∧ (Y ⇒ X))

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 25/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Propositions et énoncés

La vérité de logique vue précédemment :

"[Si il se fait que] si il pleut, (alors) la route est mouillée, [alors il se


fait que] si la route n’est pas mouillée, (alors) il ne pleut pas."

peut être modélisée par

(p ⇒ q) ⇒(¬q ⇒ ¬p).

Quels que soient les énoncés représentés par p et q, cette phrase


reste une vérité de logique.
(à condition que toute occurrence d’une même proposition
représente un même énoncé).
Ce type de remplacement est la substitution uniforme.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 26/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Substitution uniforme

Définition : substitution uniforme


Une substitution (ou substitution uniforme) associe à une variable
propositionnelle p une formule X . Elle est notée [p/X] ou encore
[p = X]. L’application de [p/X] à une formule F , notée (F )[p/X],
est le résultat du remplacement simultané de toutes les occurrences
de p dans F par X.

Définition corollaire : instance


Une instance d’une formule F est une nouvelle formule F 0 obtenue
par l’application d’une substitution uniforme [p/X].
F 0 = (F )[p/X] est appelée une instance de F .

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 27/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Substitution uniforme : exemples

Exemples de substitutions uniformes


(p ⇒ q)[r/s] = p ⇒ q
((p ∨ q) ∧ ¬p)[p/¬p] = (¬p ∨ q) ∧ ¬¬p
((p ∨ q) ∧ ¬p)[p/(r ∧ s)] = ((r ∧ s) ∨ q) ∧ ¬(r ∧ s)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 28/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

On s’intéresse à présent à la logique des propositions seule,


indépendamment de la langue naturelle.
Quand on ne s’occupe ainsi que de syntaxe, on se place dans le
calcul des propositions et non plus la logique des propositions.
Le vocabulaire du calcul des propositions donne lieu à des
assemblages, par juxtaposition de connecteurs et de
propositions.
L’objet des règles de formation est de distinguer, parmi les
assemblages construits lesquels font partie du langage.
Ces assemblages sont appellés formules bien formées (fbf).
Généralement, le terme fbf est réduit à simplement formule
(bien formée étant souvent implicite).
(NB : l’analogie avec la langue naturelle est évidente : une phrase
est un assemblage de mots construits selon certaines règles.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 29/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

On s’intéresse à présent à la logique des propositions seule,


indépendamment de la langue naturelle.
Quand on ne s’occupe ainsi que de syntaxe, on se place dans le
calcul des propositions et non plus la logique des propositions.
Le vocabulaire du calcul des propositions donne lieu à des
assemblages, par juxtaposition de connecteurs et de
propositions.
L’objet des règles de formation est de distinguer, parmi les
assemblages construits lesquels font partie du langage.
Ces assemblages sont appellés formules bien formées (fbf).
Généralement, le terme fbf est réduit à simplement formule
(bien formée étant souvent implicite).
(NB : l’analogie avec la langue naturelle est évidente : une phrase
est un assemblage de mots construits selon certaines règles.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 29/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Voici l’ensemble des règles de formation :


Base : toute proposition est une formule.
Induction : si X et Y sont des formules, alors
(¬X), (X ∧ Y ), (X ∨ Y ), (X ⇒ Y ), et (X ⇔ Y ) sont des
formules.
Clôture : une formule s’obtient uniquement à partir des règles
de base et d’induction.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 30/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Remarques :
Deux types de symboles sont apparus : X, Y , et (,).
Les parenthèses permettent de déterminer, dans une certaine
mesure, l’ordre dans lequel les règles précédentes ont été
appliquées.
Par exemple, dans la formule

(p ∧ (q ∨ r)), (1)

la règle inductive a été appliquée 2 fois :


la première a donné lieu à la formule (q ∨ r), à partir de q et r,
tandis que la deuxième a conduit à la formule finale à partir de
p et (q ∨ r).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 31/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Les parenthèses dans la formule (1) sont utilisées ici de la


même manière qu’en arithmétique.
La raison fondamentale de leur usage est la structure
arborescente des formules (notation infixée).
On pourrait aussi tout à fait utiliser une notation préfixée ou
postfixée, telle que celle de Łukasiewicz, la notation polonaise
préfixée :
En calcul des propositions, Łukasiewicz introduisait :
N pour ¬ ;
C pour ⇒ ;
A pour ∨ ;
E pour ⇔.
On obtient ainsi :
Pour CpAqm : p ⇒ (q ∨ m) ;
Pour ACpqm : (p ⇒ q) ∨ m.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 32/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Dans ce contexte, la règle de base fait d’une proposition un


arbre réduit à une simple racine.
La règle inductive, quant à elle, crée un arbre à partir d’une
racine (un connecteur) et d’un ou plusieurs arbres déjà créés
(cf. arbre exercice précédent).
Sauf pour les propositions, la racine de l’arbre correspondant à
une formule est un connecteur, appelé connecteur principal de
la formule.
Une formule dont le connecteur principal est l’implication (ou
équivalence) est parfois appelé un conditionnel
(biconditionnel ).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 33/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

On a également introduit les métasymboles X et Y . Ils


n’appartiennent pas au langage logique, mais permettent
d’introduire les concepts et propriétés de ce langage.
Si lors de la construction d’une formule X, on a utilisé la
formule Y comme argument de la règle inductive, Y est
appelée sous-formule de X.
Exemple : l’ensemble des sous formules de (p ∧ (q ∨ r)) (1)
est :
{p, q, r, (q ∨ r)}

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 34/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Exercice 1

Dessiner l’arbre syntaxique de la formule (1) : (p ∧ (q ∨ r)).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 35/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Exercice 1

Dessiner l’arbre syntaxique de la formule (1) : (p ∧ (q ∨ r)).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 35/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Exercice 2

Dessiner l’arbre syntaxique de la formule (2) :

(((¬a) ∧ b) ∨ c) ⇒ ((¬(¬a)) ∨ (¬b)) (2)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 36/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Syntaxe

Exercice 2

Dessiner l’arbre syntaxique de la formule (2) :

(((¬a) ∧ b) ∨ c) ⇒ ((¬(¬a)) ∨ (¬b))

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 36/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Plan : 1 - Chapitre 1. Logique Propositionnelle

Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 37/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Sémantique

De même que pour la langue naturelle, en plus de la syntaxe


on a aussi la sémantique : la signification des phrases.
La sémantique s’applique aussi au calcul des propositions, pour
donner une valeur de vérité à une formule.
Cette attribution de valeur (V ou F) est ce que l’on appelle
l’interprétation de cette formule.
La sémantique d’une formule dépend uniquement de celles de
ses sous-formules.
Ex. : la valeur de vérité associée à la formule (X ∧ Y ) sera
connue dès lors que les valeurs de X et Y seront connues.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 38/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Table de vérité des 5 connecteurs

X ¬X
V F
F V

X Y X ∧Y X ∨Y X⇒Y X⇔Y
V V V V V V
V F F V F F
F V F V V F
F F F F V V

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 39/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Interprétation des formules

Une [fonction d’]interprétation est une fonction i qui associe à


toute proposition p une valeur de vérité.
La fonction i, dont le domaine est l’ensemble des propositions,
est étendue à l’ensemble des formules au moyen des tables de
vérité. Cette extension notée I est appelée interprétation (de
toutes les (sous-)formules).
Notez : Un littéral est une proposition ou la négation d’une
proposition.
Les littéraux p et ¬p sont dits opposés.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 40/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercice 3

Pour illustrer la méthode des tables de vérité, nous allons prouver


que la formule

(p ⇒ (q ⇒ r)) ⇔ ((p ∧ q) ⇒ r) (3)

est vraie pour toutes les interprétations.


Étape 0 : construire l’arbre syntaxique de (3)
Étape 1 : construire la table de vérité avec chaque constituant
atomique ou construit de la formule (3)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 41/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercice 3

Étape 0 : construire l’arbre syntaxique de


(p ⇒ (q ⇒ r)) ⇔ ((p ∧ q) ⇒ r) (3)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 42/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercice 3

Étape 0 : construire l’arbre syntaxique de


(p ⇒ (q ⇒ r)) ⇔ ((p ∧ q) ⇒ r) (3)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 42/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercice 3

Étape 1 : construire la table de vérité avec chaque constituant


atomique ou construit de la formule (3)

p q r q⇒r p ⇒ (q ⇒ r) p∧q (p ∧ q) ⇒ r (3)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 43/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercice 3

Étape 1 : construire la table de vérité avec chaque constituant


atomique ou construit de la formule (3)

p q r q⇒r p ⇒ (q ⇒ r) p∧q (p ∧ q) ⇒ r (3)


V V V V V V V V
V V F F F V F V
V F V V V F V V
V F F V V F V V
F V V V V F V V
F V F F V F V V
F F V V V F V V
F F F V V F V V

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 43/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Théorie des modèles

S’il existe une interprétation I d’une formule A dans laquelle


A est vraie (I(A) = V), alors on dit d’un tel état I que c’est
un modèle de la formule A. (On dit aussi que la formule
admet (au moins) un modèle).
Cela se note aussi |=I A.
Il peut exister 0, 1 ou n modèles pour une formule F donnée,
avec n = 2k , et k le nombre de propositions (différentes)
composant F .
p a 2 interprétations (et 1 modèle : p = V)
(p ∨ ¬p) a 2 interprétations (et 2 modèles : p = V et p = F)
(p ∨ q) a 4 interprétations (et 3 modèles : p = V et q = V)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 44/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Théorie des modèles

S’il existe une interprétation I d’une formule A dans laquelle


A est vraie (I(A) = V), alors on dit d’un tel état I que c’est
un modèle de la formule A. (On dit aussi que la formule
admet (au moins) un modèle).
Cela se note aussi |=I A.
Il peut exister 0, 1 ou n modèles pour une formule F donnée,
avec n = 2k , et k le nombre de propositions (différentes)
composant F .
p a 2 interprétations (et 1 modèle : p = V)
(p ∨ ¬p) a 2 interprétations (et 2 modèles : p = V et p = F)
(p ∨ q) a 4 interprétations (et 3 modèles : p = V et q = V)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 44/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Formule consistante

Une formule A est sémantiquement consistante, ou


simplement consistante si elle admet au moins un modèle.
Par exemple, les formules (p ∧ q), (p ⇒ p) et (p ∨ q) sont
consistantes : elles sont vraies, notamment si p et q sont vrais.
A noter que toutes les propositions sont consistantes. Les
négations de propositions sont également consistantes.
p est consistante : soit i1 tq. i1 (p) = V, on a p = V.
¬p est également consistante : soit i2 tq. i2 (p) = F, on a
¬p = V.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 45/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Formule consistante

Une formule A est sémantiquement consistante, ou


simplement consistante si elle admet au moins un modèle.
Par exemple, les formules (p ∧ q), (p ⇒ p) et (p ∨ q) sont
consistantes : elles sont vraies, notamment si p et q sont vrais.
A noter que toutes les propositions sont consistantes. Les
négations de propositions sont également consistantes.
p est consistante : soit i1 tq. i1 (p) = V, on a p = V.
¬p est également consistante : soit i2 tq. i2 (p) = F, on a
¬p = V.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 45/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Formule inconsistante

L’inverse d’une formule consistante est une formule


inconsistante.
C’est une formule pour laquelle il n’existe aucun modèle,
c’est-à-dire que toutes ses interprétations sont fausses.
Exemple : la formule (p ∧ ¬p) est inconsistante.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 46/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Ensemble de formules

Un ensemble de formules E est [sémantiquement] consistant


si tous ses éléments admettent un modèle commun :

∃I1 , (I1 (H1 ) = V, . . . , I1 (Hn ) = V) ⇒ |=I1 H1 et . . . et |=I1 Hn

que l’on note :


|=I1 {H1 , ..., Hn }
De façon générale, un ensemble de formules est donc assimilé,
du point de vue sémantique, à la conjonction de ses éléments
En effet, dire que l’ensemble {H1 , ..., Hn } est vrai signifie que
H1 = V et . . . et Hn = V. Si l’on fait la conjonction de tous
les H, la formule obtenue sera effectivement vraie ssi toutes
les H sont vraies :
((H1 ∧ . . . ∧ Hn ) ⇔ V) ⇔ ((H1 ⇔ V et . . . et Hn ⇔ V))
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 47/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Ensemble de formules

Un ensemble de formules E est [sémantiquement] consistant


si tous ses éléments admettent un modèle commun :

∃I1 , (I1 (H1 ) = V, . . . , I1 (Hn ) = V) ⇒ |=I1 H1 et . . . et |=I1 Hn

que l’on note :


|=I1 {H1 , ..., Hn }
De façon générale, un ensemble de formules est donc assimilé,
du point de vue sémantique, à la conjonction de ses éléments
En effet, dire que l’ensemble {H1 , ..., Hn } est vrai signifie que
H1 = V et . . . et Hn = V. Si l’on fait la conjonction de tous
les H, la formule obtenue sera effectivement vraie ssi toutes
les H sont vraies :
((H1 ∧ . . . ∧ Hn ) ⇔ V) ⇔ ((H1 ⇔ V et . . . et Hn ⇔ V))
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 47/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Ensembles consistants (de formules)

Un modèle d’un ensemble de formules E = A1 , A2 , ..., Ak est une


interprétation qui rend vraie chaque formule A1 , A2 , ..., Ak de E.
S’il existe au moins un modèle de E, on dit que l’ensemble E
est satisfiable ou consistant (i.e., peut être vrai), ou encore
non contradictoire ;
sinon E est dit inconsistant ou non satisfiable ou encore
contradictoire.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 48/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Formules valides

Une formule est valide si elle est toujours vraie,


indépendamment des valeurs de vérité des propositions qu’elle
contient, c’est-à-dire si elle admet autant de modèles que
d’interprétations (elle est vraie pour toutes ses interprétations).
La formule (3) vue précédemment est valide.
De même, les formules (p ∨ ¬p), (¬¬p ⇔ p) sont valides.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 49/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

La négation d’une formule valide est nécessairement inconsistante.

p ¬p p ∧ ¬p ¬(p ∧ ¬p)
V F F V
F V F V

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 50/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Tautologies

Les formules valides du calcul des propositions sont souvent


appellées tautologies.
Si A est une formule, la notation

|= A
exprime que A est une tautologie.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 51/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Conséquence logique et déduction

Par extension, si E est un ensemble de formules, la notation

E |= A

signifie que toutes les interprétations rendant vraies toutes les


formules de E (i.e., tous les modèles de E) rendent également
vraie la formule A. Quand E est vraie, A est vraie.
On dit que A est une conséquence logique de E.
Une tautologie est donc une conséquence logique de
l’ensemble vide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 52/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Problème de la déduction

D’une façon générale, on a

{H1 , ..., Hn } |= C ⇔ (H1 ∧ ... ∧ Hn ) ⇒ C

Déterminer si une formule C est conséquence logique d’un


ensemble E de formules est fondamental, que l’on appelle
problème de la déduction.
Exemple : {p, q} |= (p ∨ q) ? (Est-ce que p ∨ q) est vraie (au
moins) sous les hypothèses p et q ?)
p q {p, q} p ∨ q (p ∧ q) ⇒ (p ∨ q)
V V V V V
V F F V V
F V F V V
F F F F V
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 53/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Problème de la déduction

D’une façon générale, on a

{H1 , ..., Hn } |= C ⇔ (H1 ∧ ... ∧ Hn ) ⇒ C

Déterminer si une formule C est conséquence logique d’un


ensemble E de formules est fondamental, que l’on appelle
problème de la déduction.
Exemple : {p, q} |= (p ∨ q) ? (Est-ce que p ∨ q) est vraie (au
moins) sous les hypothèses p et q ?)
p q {p, q} p ∨ q (p ∧ q) ⇒ (p ∨ q)
V V V V V
V F F V V
F V F V V
F F F F V
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 53/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Principe de déduction

C est conséquence logique de l’ensemble fini E ssi E ∪ {¬C}


est inconsistant. C’est le principe de déduction.
De plus, un ensemble de formules E est inconsistant ssi F en
est conséquence logique.
D’où le principe de déduction exprimé formellement :

{H1 , ..., Hn } |= C ⇔ (H1 , ..., Hn , ¬C) |= F


C’est-à-dire :
(H1 ∧ ... ∧ Hn ∧ ¬C) ⇒ F

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 54/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Principe de déduction

C est conséquence logique de l’ensemble fini E ssi E ∪ {¬C}


est inconsistant. C’est le principe de déduction.
De plus, un ensemble de formules E est inconsistant ssi F en
est conséquence logique.
D’où le principe de déduction exprimé formellement :

{H1 , ..., Hn } |= C ⇔ (H1 , ..., Hn , ¬C) |= F


C’est-à-dire :
(H1 ∧ ... ∧ Hn ∧ ¬C) ⇒ F

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 54/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Substitution uniforme

Si les formules A et B sont conséquences logiques l’une de


l’autre, on dit qu’elles sont logiquement équivalentes ; cela a
lieu si et seulement si (A ⇔ B) est une tautologie.
La règle de substitution uniforme, énoncée ci-après, constitue
un moyen simple d’engendrer des tautologies.
Si X est une tautologie, p une proposition et A
une formule, alors l’énoncé obtenu en remplaçant
uniformément p par A dans X est une tautologie.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 55/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercices d’application : Interprétation 1

Soit l’interprétation I1 définie comme suit pour les formules A, B


et C :
I1 (A) = V ; I1 (B) = F ; I1 (C) = V
Interprétez les formules suivantes composées de A, B et C :
A∧B
A ∧ (¬C ∨ B)
A ∨ ¬A

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 56/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercices d’application : Interprétation 1 : (correction)

Soit l’interprétation I1 définie comme suit pour les formules A, B


et C :
I1 (A) = V ; I1 (B) = F ; I1 (C) = V
Interprétez les formules suivantes composées de A, B et C :
A∧B =V∧F=F
A ∧ (¬C ∨ B) = V ∧ (¬V ∨ F) = V ∧ (F ∨ F) = V ∧ F = F
A ∨ ¬A = V ∨ ¬V = V ∨ F = V

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 56/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercices d’application : Interprétation 2

Soit l’interprétation I2 définie comme suit pour les formules A, B


et C :
I2 (A) = V ; I2 (B) = V ; I2 (C) = F
Interprétez les formules suivantes composées de A, B et C :
A∧B
A ∧ (¬C ∨ B)
A ∨ ¬A

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 57/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercices d’application : Interprétation 2 : (correction)

Soit l’interprétation I2 définie comme suit pour les formules A, B


et C :
I2 (A) = V ; I2 (B) = V ; I2 (C) = F
Interprétez les formules suivantes composées de A, B et C :
A∧B =V∧V =V
A ∧ (¬C ∨ B) = V ∧ (¬F ∨ V) = V ∧ (V ∨ V) = V ∧ V = V
A ∨ ¬A = V ∨ ¬V = V ∨ F = V

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 57/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercices d’application : modèles

1 Vérifier que l’ensemble E de formules ci-dessous est


satisfiable :
E = {P ∧ Q, Q ∨ R}
2 Combien de modèles existe-t-il ?
3 Même question si on ajoute la formule ¬P à E ?

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 58/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercices d’application : modèles (correction)

1 Il y a 2 modèles pour E :
I1 : P = V, Q = V, R = V ;
I2 : P = V, Q = V, R = F.
2 Il existe au moins un modèle, donc E est consistant.
3 Il n’existe aucun modèle pour E 0 , car P ne peut être V et F en
même temps. Donc E 0 est inconsistant.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 58/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercices d’application : modèles (correction)

1 Il y a 2 modèles pour E :
I1 : P = V, Q = V, R = V ;
I2 : P = V, Q = V, R = F.
2 Il existe au moins un modèle, donc E est consistant.
3 Il n’existe aucun modèle pour E 0 , car P ne peut être V et F en
même temps. Donc E 0 est inconsistant.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 58/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercices d’application : modèles (correction)

1 Il y a 2 modèles pour E :
I1 : P = V, Q = V, R = V ;
I2 : P = V, Q = V, R = F.
2 Il existe au moins un modèle, donc E est consistant.
3 Il n’existe aucun modèle pour E 0 , car P ne peut être V et F en
même temps. Donc E 0 est inconsistant.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 58/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercices d’application : modèles (correction)

1 Il y a 2 modèles pour E :
I1 : P = V, Q = V, R = V ;
I2 : P = V, Q = V, R = F.
2 Il existe au moins un modèle, donc E est consistant.
3 Il n’existe aucun modèle pour E 0 , car P ne peut être V et F en
même temps. Donc E 0 est inconsistant.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 58/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Sémantique

Exercices d’application : modèles (correction)

1 Il y a 2 modèles pour E :
I1 : P = V, Q = V, R = V ;
I2 : P = V, Q = V, R = F.
2 Il existe au moins un modèle, donc E est consistant.
3 Il n’existe aucun modèle pour E 0 , car P ne peut être V et F en
même temps. Donc E 0 est inconsistant.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 58/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Plan : 1 - Chapitre 1. Logique Propositionnelle

Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 59/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de Quine (1950)


Déterminer si une formule est bien formée est assez trivial.
Déterminer si une formule est consistante voire valide
(tautologique) est difficile si elle contient bcp de propositions.

Algorithme de Quine v0
1 On construit un arbre binaire de formules, orienté du haut (la
racine = formule de départ) vers le bas (les feuilles =
propositions).
2 À chaque niveau de l’arbre, on choisit une variable
propositionnelle de la formule à laquelle on substitue la valeur
V pour un arc et F pour l’autre arc.
3 On applique les règles de simplification (cf. ci-après) puis on
poursuit la construction de l’arbre vers le bas, en interprétant
une autre variable propositionnelle.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 60/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de Quine (1950)


Déterminer si une formule est bien formée est assez trivial.
Déterminer si une formule est consistante voire valide
(tautologique) est difficile si elle contient bcp de propositions.

Algorithme de Quine v0
1 On construit un arbre binaire de formules, orienté du haut (la
racine = formule de départ) vers le bas (les feuilles =
propositions).
2 À chaque niveau de l’arbre, on choisit une variable
propositionnelle de la formule à laquelle on substitue la valeur
V pour un arc et F pour l’autre arc.
3 On applique les règles de simplification (cf. ci-après) puis on
poursuit la construction de l’arbre vers le bas, en interprétant
une autre variable propositionnelle.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 60/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de Quine (v0)

Une formule est terminale quand elle contient uniquement des V


ou des F.
Il faut commencer par ramifier sur la variable propositionnelle qui a
le plus d’occurerrences dans la formule racine (gain de temps en
moyenne).
Une formule valide se reconnaît au fait que les feuilles de
l’arbre sont toutes étiquetées V.
Dans une formule inconsistante, elles sont toutes étiquetées F.
Dans le cas où au moins une feuille est étiquetée V mais où
toutes ne le sont pas, la formule est simplement consistante.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 61/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Règles de ré-écriture pour Quine

Le symbole −→ signifie “remplacer ce qui est à gauche par ce qui


est à droite” :

¬F −→ V ¬V −→ F
V ⇒ X −→ X X ⇒ V −→ V
F ⇒ X −→ V X ⇒ F −→ ¬X
V ∨ X ou X ∨ V −→ V F ∨ X ou X ∨ F −→ X
V ∧ X ou X ∧ V −→ X F ∧ X ou X ∧ F −→ F
V ⇔ X ou X ⇔ V −→ X F ⇔ X ou X ⇔ F −→ ¬X

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 62/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Exemple

Appliquons l’algorithme de Quine à la formule : ¬(p ∧ ¬p) ⇒ q

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 63/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Exemple

Appliquons l’algorithme de Quine à la formule : ¬(p ∧ ¬p) ⇒ q

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 63/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Exercice 4

Soit l’énoncé en langue naturelle suivant :


S’il est venu seul, il a pris le bus ou le train. S’il a pris
le bus ou son automobile, il est arrivé en retard et a
manqué la réunion. Il n’est pas arrivé en retard. Donc, s’il
est venu seul, il a pris le train.

Réécrivons-le sous la forme d’une formule propositionnelle en


prenant les lettres soulignées comme noms de variables
propositionnelles.
h   i
s ⇒ (b ∨ t) ∧ (b ∨ a) ⇒ (r ∧ m) ∧ ¬r ⇒ (s ⇒ t)

Question : appliquer l’algorithme de Quine sur cette formule.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 64/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Exercice 5

Soit l’énoncé en langue naturelle suivant :


S’il est venu seul, il a pris le bus ou le train. S’il a pris
le bus ou son automobile, il est arrivé en retard et a
manqué la réunion. Il n’est pas arrivé en retard. Donc, s’il
est venu seul, il a pris le train.

Réécrivons-le sous la forme d’une formule propositionnelle en


prenant les lettres soulignées comme noms de variables
propositionnelles.
h   i
s ⇒ (b ∨ t) ∧ (b ∨ a) ⇒ (r ∧ m) ∧ ¬r ⇒ (s ⇒ t)

Question : appliquer l’algorithme de Quine sur cette formule.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 64/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Exemple
h“` ´ ` ´” i
s ⇒ (b ∨ t) ∧ (b ∨ a) ⇒ (r ∧ m) ∧ ¬r ⇒ (s ⇒ t)

s ¬s

h“` ´ ` ´” i
V ⇒ (b∨t) ∧ (b∨a) ⇒ (r∧m) ∧¬r ⇒ (V ⇒ t) h“` ´ ` ´” i
h“ F ⇒ (b∨t) ∧ (b∨a) ⇒ (r∧m) ∧¬r ⇒ (F ⇒ t)
` ´” i
(b ∨ t) ∧ (b ∨ a) ⇒ (r ∧ m) ∧ ¬r ⇒ t h“ ` ´” i
V ∧ (b ∨ a) ⇒ (r ∧ m) ∧ ¬r ⇒ V
V

b ¬b

h“ ` ´” i
(V ∨ t) ∧ (V ∨ a) ⇒ (r ∧ m) ∧ ¬r ⇒ t
h“ ` ´” i h“ ` ´” i
V ∧ V ⇒ (r ∧ m) ∧ ¬r ⇒ t (F ∨ t) ∧ (F ∨ a) ⇒ (r ∧ m) ∧ ¬r ⇒ t
h“ ” i h“ ` ´” i
V ⇒ (r ∧ m) ∧ ¬r ⇒ t t ∧ a ⇒ (r ∧ m) ∧ ¬r ⇒ t
h i
(r ∧ m) ∧ ¬r ⇒ t
r ¬r r ¬r

h“ ` ´” i
h i h i h“ ` ´” i t ∧ a ⇒ (F ∧ m) ∧V ⇒t
(V ∧ m) ∧ F ⇒ t (F ∧ m) ∧ V ⇒ t t ∧ a ⇒ (V ∧ m) ∧F ⇒t “ ` ´”
F⇒t F⇒t F⇒t t∧ a⇒F ⇒t
“ ”
V V V t ∧ ¬a ⇒ t

t ¬t

(V ∧ ¬a) ⇒ V (F ∧ ¬a) ⇒ F
¬a ⇒ V F⇒F
V V

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 64/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction (1)

L’algorithme de réduction permet la preuve par l’absurde de la


validité d’une formule.
Étudions-le sur la formule suivante :

[(p ∧ q) ⇒ r] ⇒ [p ⇒ (q ⇒ r)].

On suppose qu’il existe une interprétation I telle que cette


formule prend la valeur F(preuve par l’absurde de la validité).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 65/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction (2)

D’après les tables de vérité de l’implication, un conditionnel est


faux si et seulement si son conséquent est faux et son
antécédent vrai.
On en déduit :
I((p ∧ q) ⇒ r) = V,
I(p ⇒ (q ⇒ r)) = F.
En appliquant la même règle à la deuxième ligne, on connaît
I :
I(p) = V, I(q) = V, I(r) = F,
ce qui contredit I((p ∧ q) ⇒ r) = V.
Cette contradiction établit la validité de la formule de départ.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 66/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction (2)

D’après les tables de vérité de l’implication, un conditionnel est


faux si et seulement si son conséquent est faux et son
antécédent vrai.
On en déduit :
I((p ∧ q) ⇒ r) = V,
I(p ⇒ (q ⇒ r)) = F.
En appliquant la même règle à la deuxième ligne, on connaît
I :
I(p) = V, I(q) = V, I(r) = F,
ce qui contredit I((p ∧ q) ⇒ r) = V.
Cette contradiction établit la validité de la formule de départ.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 66/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction (2)

D’après les tables de vérité de l’implication, un conditionnel est


faux si et seulement si son conséquent est faux et son
antécédent vrai.
On en déduit :
I((p ∧ q) ⇒ r) = V,
I(p ⇒ (q ⇒ r)) = F.
En appliquant la même règle à la deuxième ligne, on connaît
I :
I(p) = V, I(q) = V, I(r) = F,
ce qui contredit I((p ∧ q) ⇒ r) = V.
Cette contradiction établit la validité de la formule de départ.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 66/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction (2)

D’après les tables de vérité de l’implication, un conditionnel est


faux si et seulement si son conséquent est faux et son
antécédent vrai.
On en déduit :
I((p ∧ q) ⇒ r) = V,
I(p ⇒ (q ⇒ r)) = F.
En appliquant la même règle à la deuxième ligne, on connaît
I :
I(p) = V, I(q) = V, I(r) = F,
ce qui contredit I((p ∧ q) ⇒ r) = V.
Cette contradiction établit la validité de la formule de départ.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 66/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction (2)

D’après les tables de vérité de l’implication, un conditionnel est


faux si et seulement si son conséquent est faux et son
antécédent vrai.
On en déduit :
I((p ∧ q) ⇒ r) = V,
I(p ⇒ (q ⇒ r)) = F.
En appliquant la même règle à la deuxième ligne, on connaît
I :
I(p) = V, I(q) = V, I(r) = F,
ce qui contredit I((p ∧ q) ⇒ r) = V.
Cette contradiction établit la validité de la formule de départ.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 66/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction (2)

D’après les tables de vérité de l’implication, un conditionnel est


faux si et seulement si son conséquent est faux et son
antécédent vrai.
On en déduit :
I((p ∧ q) ⇒ r) = V,
I(p ⇒ (q ⇒ r)) = F.
En appliquant la même règle à la deuxième ligne, on connaît
I :
I(p) = V, I(q) = V, I(r) = F,
ce qui contredit I((p ∧ q) ⇒ r) = V.
Cette contradiction établit la validité de la formule de départ.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 66/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction (2)

D’après les tables de vérité de l’implication, un conditionnel est


faux si et seulement si son conséquent est faux et son
antécédent vrai.
On en déduit :
I((p ∧ q) ⇒ r) = V,
I(p ⇒ (q ⇒ r)) = F.
En appliquant la même règle à la deuxième ligne, on connaît
I :
I(p) = V, I(q) = V, I(r) = F,
ce qui contredit I((p ∧ q) ⇒ r) = V.
Cette contradiction établit la validité de la formule de départ.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 66/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction : exercice

Utiliser l’algorithme de réduction pour déterminer si la formule


suivante est valide :

(r ⇒ (p ⇒ ¬q)) ⇒ (r ⇒ q).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 67/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction : exercice (correction)

Utiliser l’algorithme de réduction pour déterminer si la formule


suivante est valide :
(r ⇒ (p ⇒ ¬q)) ⇒ (r ⇒ q).
Par l’absurde, on suppose donc qu’il existe une interprétation I
rendant fausse la formule.
Cela implique que
I(r ⇒ q) = F (1), I(r ⇒ (p ⇒ ¬q)) = V (2).
(1) nous conduit à I(r) = V et I(q) = F.
En remplacant r et q dans (2), on obtient que V ⇒ (p ⇒ V),
ce qui est équivalent à V ; ce qui ne contredit pas (2).
La formule de départ n’est donc pas valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 67/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction : exercice (correction)

Utiliser l’algorithme de réduction pour déterminer si la formule


suivante est valide :
(r ⇒ (p ⇒ ¬q)) ⇒ (r ⇒ q).
Par l’absurde, on suppose donc qu’il existe une interprétation I
rendant fausse la formule.
Cela implique que
I(r ⇒ q) = F (1), I(r ⇒ (p ⇒ ¬q)) = V (2).
(1) nous conduit à I(r) = V et I(q) = F.
En remplacant r et q dans (2), on obtient que V ⇒ (p ⇒ V),
ce qui est équivalent à V ; ce qui ne contredit pas (2).
La formule de départ n’est donc pas valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 67/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction : exercice (correction)

Utiliser l’algorithme de réduction pour déterminer si la formule


suivante est valide :
(r ⇒ (p ⇒ ¬q)) ⇒ (r ⇒ q).
Par l’absurde, on suppose donc qu’il existe une interprétation I
rendant fausse la formule.
Cela implique que
I(r ⇒ q) = F (1), I(r ⇒ (p ⇒ ¬q)) = V (2).
(1) nous conduit à I(r) = V et I(q) = F.
En remplacant r et q dans (2), on obtient que V ⇒ (p ⇒ V),
ce qui est équivalent à V ; ce qui ne contredit pas (2).
La formule de départ n’est donc pas valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 67/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction : exercice (correction)

Utiliser l’algorithme de réduction pour déterminer si la formule


suivante est valide :
(r ⇒ (p ⇒ ¬q)) ⇒ (r ⇒ q).
Par l’absurde, on suppose donc qu’il existe une interprétation I
rendant fausse la formule.
Cela implique que
I(r ⇒ q) = F (1), I(r ⇒ (p ⇒ ¬q)) = V (2).
(1) nous conduit à I(r) = V et I(q) = F.
En remplacant r et q dans (2), on obtient que V ⇒ (p ⇒ V),
ce qui est équivalent à V ; ce qui ne contredit pas (2).
La formule de départ n’est donc pas valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 67/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction : exercice (correction)

Utiliser l’algorithme de réduction pour déterminer si la formule


suivante est valide :
(r ⇒ (p ⇒ ¬q)) ⇒ (r ⇒ q).
Par l’absurde, on suppose donc qu’il existe une interprétation I
rendant fausse la formule.
Cela implique que
I(r ⇒ q) = F (1), I(r ⇒ (p ⇒ ¬q)) = V (2).
(1) nous conduit à I(r) = V et I(q) = F.
En remplacant r et q dans (2), on obtient que V ⇒ (p ⇒ V),
ce qui est équivalent à V ; ce qui ne contredit pas (2).
La formule de départ n’est donc pas valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 67/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Algorithme de réduction : exercice (correction)

Utiliser l’algorithme de réduction pour déterminer si la formule


suivante est valide :
(r ⇒ (p ⇒ ¬q)) ⇒ (r ⇒ q).
Par l’absurde, on suppose donc qu’il existe une interprétation I
rendant fausse la formule.
Cela implique que
I(r ⇒ q) = F (1), I(r ⇒ (p ⇒ ¬q)) = V (2).
(1) nous conduit à I(r) = V et I(q) = F.
En remplacant r et q dans (2), on obtient que V ⇒ (p ⇒ V),
ce qui est équivalent à V ; ce qui ne contredit pas (2).
La formule de départ n’est donc pas valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 67/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithmique

Éfficacité des algorithmes

Algorithme de Quine ou de réduction pas toujours plus


efficaces que la méthode des tabelaux.
Déterminer la validité/consistance d’une formule du calcul des
propositions est NP-complet.
Improbable de découvrir un algorithme générique efficace pour
tester validité ou consistance des formules du calcul des
propositions.
Dans des cas particuliers, on peut traiter le problème de façon
efficace, notamment avec la technique de résolution (cf. plus
loin).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 68/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Équivalence et dualité de formules

Plan : 1 - Chapitre 1. Logique Propositionnelle

Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 69/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Équivalence et dualité de formules

Équivalence logique de formules

Plusieurs formules peuvent avoir la même sémantique. C’est le


cas par exemple de p ⇒ (q ⇒ r) et (p ∧ q) ⇒ r.
Cela revient à dire que les éventuels modèles de ces formules
sont égaux.
Dans le contexte du calcul des propositions, le concept
d’équivalence logique remplace celui d’égalité.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 70/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Équivalence et dualité de formules

Équivalences logiques usuelles (1)

Équivalences démontrables.
|= (X ∧ X) ⇔ X Idempotence
|= (X ∨ X) ⇔ X
|= (X ∧Y) ⇔ (Y ∧ X) Commutativité
|= (X ∨Y) ⇔ (Y ∨ X)
|= (X ∧ (Y ∧ Z)) ⇔ ((X ∧ Y ) ∧ Z) Associativité
|= (X ∨ (Y ∨ Z)) ⇔ ((X ∨ Y ) ∨ Z)
|= (X ∧ (Y ∨ Z)) ⇔ ((X ∧ Y ) ∨ (X ∧ Z) Distributivité
|= (X ∨ (Y ∧ Z)) ⇔ ((X ∨ Y ) ∧ (X ∨ Z)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 71/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Équivalence et dualité de formules

Équivalences logiques usuelles - (2)

|= (X ∧ (X ∨ Y )) ⇔ X Lois d’absorption
|= (X ∨ (X ∧ Y )) ⇔ X
|= ¬(X ∨ Y ) ⇔ (¬X ∧ ¬Y ) Lois de De Morgan
|= ¬(X ∧ Y ) ⇔ (¬X ∨ ¬Y )
|= (X ⇒ Y ) ⇔ (¬Y ⇒ ¬X) Contraposée
|= (X ∨ Y ) ⇔ (¬X ⇒ Y ) Définitions
|= (X ∧ Y ) ⇔ ¬(X ⇒ ¬Y )
|= (X ⇔ Y ) ⇔ ((X ⇒ Y ) ∧ (Y ⇒ X))

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 72/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Équivalence et dualité de formules

Équivalences logiques usuelles - (3)

|= (X ∧ V) ⇔ X Élement neutre
|= (X ∨ F) ⇔ X
|= (X ∧ F) ⇔ F Élement absorbant
|= (X ∨ V) ⇔ V
|= (X ∨ ¬X) ⇔ V Complémentarité
|= (X ∧ ¬X) ⇔ F

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 73/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Équivalence et dualité de formules

Dualité de formules

Les équivalences logiques de complémentarité, de l’élément


neutre et de l’élément absorbant, par exemple, sont dites
duales.

Le principe de dualité auquel elles répondent est le suivant :

Principe de dualité 1
Si dans une équivalence logique ne comportant pas le symbole ⇒,
on échange les rôles de ∧ et ∨, d’une part, et de V et F d’autre part,
on obtient une nouvelle équivalence logique.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 74/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Équivalence et dualité de formules

Dualité de formules

Les équivalences logiques de complémentarité, de l’élément


neutre et de l’élément absorbant, par exemple, sont dites
duales.

Le principe de dualité auquel elles répondent est le suivant :

Principe de dualité 1
Si dans une équivalence logique ne comportant pas le symbole ⇒,
on échange les rôles de ∧ et ∨, d’une part, et de V et F d’autre part,
on obtient une nouvelle équivalence logique.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 74/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Équivalence et dualité de formules

Dualité de formules (4)

Il existe un second principe de dualité :

Principe de dualité 2
Dans une formule logique, si on échange les rôles de ∧ et ∨, d’une
part, et de V et F d’autre part, et en remplaçant, de plus, chaque
proposition par sa négation, on obtient une formule duale.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 75/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Équivalence et dualité de formules

Dualité de formules (4)

Il existe un second principe de dualité :

Principe de dualité 2
Dans une formule logique, si on échange les rôles de ∧ et ∨, d’une
part, et de V et F d’autre part, et en remplaçant, de plus, chaque
proposition par sa négation, on obtient une formule duale.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 75/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Équivalence et dualité de formules

Dualité de formules (5)

Le second principe de dualité est utilisé dans le cadre du


principe de déduction : la condition nécessaire est suffisante
pour que la formule C soit une conséquence logique de H1 , ...,
Hn est :
H1 ∧ ... ∧ Hn ∧ ¬C ⇔ F.
C’est ce que l’on appelle la déduction directe.
Sa duale :
¬H1 ∨ ... ∨ ¬Hn ∨ C ⇔ V.
est dite la déduction inverse.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 76/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Équivalence et dualité de formules

Dualité de formules (5)

Le second principe de dualité est utilisé dans le cadre du


principe de déduction : la condition nécessaire est suffisante
pour que la formule C soit une conséquence logique de H1 , ...,
Hn est :
H1 ∧ ... ∧ Hn ∧ ¬C ⇔ F.
C’est ce que l’on appelle la déduction directe.
Sa duale :
¬H1 ∨ ... ∨ ¬Hn ∨ C ⇔ V.
est dite la déduction inverse.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 76/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Plan : 1 - Chapitre 1. Logique Propositionnelle

Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 77/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Clause (1)

Une clause est la disjonction d’un nombre fini de littéraux,


c’est-à-dire une formule du type :

(l1 ∨ l2 ∨ ... ∨ ln ).

Une clause est valide si et seulement si elle comporte au moins


une paire de littéraux opposés.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 78/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Clause (1)

Une clause est la disjonction d’un nombre fini de littéraux,


c’est-à-dire une formule du type :

(l1 ∨ l2 ∨ ... ∨ ln ).

Une clause est valide si et seulement si elle comporte au moins


une paire de littéraux opposés.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 78/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Clause (2)

La clause vide (notée F ou ) est la seule clause inconsistante.


En effet, supposons deux clauses c1 et c2 . Si on en fait l’union
pour obtenir une nouvelle clause c3 , la valeur de vérité, si c1
ou c2 est la clause vide, devra dépendre uniquement de la
clause non vide. Or comme V ∨ c ⇔ V, et que que F ∨ c ⇔ c,
la clause vide est forcément équivalente à F.
Remarque :
La notion de clause est importante en pratique.
La description de problèmes et d’algorithmes en général en
termes de clauses est à la base de la programmation logique et
du langage Prolog en particulier (cf. plus loin).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 79/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Clause (2)

La clause vide (notée F ou ) est la seule clause inconsistante.


En effet, supposons deux clauses c1 et c2 . Si on en fait l’union
pour obtenir une nouvelle clause c3 , la valeur de vérité, si c1
ou c2 est la clause vide, devra dépendre uniquement de la
clause non vide. Or comme V ∨ c ⇔ V, et que que F ∨ c ⇔ c,
la clause vide est forcément équivalente à F.
Remarque :
La notion de clause est importante en pratique.
La description de problèmes et d’algorithmes en général en
termes de clauses est à la base de la programmation logique et
du langage Prolog en particulier (cf. plus loin).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 79/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Forme normale conjonctive

Une forme normale conjonctive (FNC) est une conjonction d’un


nombre fini de clauses.
Exemple : si c1 , c2 , ..., cn sont des clauses, alors

(c1 ∧ c2 ∧ ... ∧ cn )

est une FNC.

Théorème 1
Toute formule du calcul des propositions admet une FNC lui étant
logiquement équivalente.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 80/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Forme normale conjonctive

Une forme normale conjonctive (FNC) est une conjonction d’un


nombre fini de clauses.
Exemple : si c1 , c2 , ..., cn sont des clauses, alors

(c1 ∧ c2 ∧ ... ∧ cn )

est une FNC.

Théorème 1
Toute formule du calcul des propositions admet une FNC lui étant
logiquement équivalente.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 80/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

FNC et duale

Il existe un concept dual de la clause, c’est le cube ou


conjonction d’un nombre fini de littéraux.
Une forme normale disjonctive est la disjonction d’un nombre
fini de cubes.
On peut montrer que toute formule admet une forme normale
disjonctive logiquement équivalente.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 81/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Preuve du théorème 1
L’algorithme ci-dessous est une preuve du théorème 1.

Algorithme de mise sous FNC


1 Remplacer tous les (X ⇔ Y ) par (X ⇒ Y ) ∧ (Y ⇒ X) puis
remplacer (U ⇒ V ) par (¬U ∨ V ) (élimination des ⇔ et ⇒).
2 Appliquer autant que possible les règles de ré-écriture dérivées
des lois de De Morgan : ¬(X ∧ Y ) −→ (¬X ∨ ¬Y ), et
¬(X ∨ Y ) −→ (¬X ∧ ¬Y ).
Remplacer les doubles négations selon la loi : ¬¬X −→ X.
3 Appliquer autant que possible les règles de ré-écriture dérivées
des lois de distributivité : X ∨ (Y ∧ Z) −→ (X ∨ Y ) ∧ (X ∨ Z),
et (X ∧ Y ) ∨ Z −→ (X ∨ Z) ∧ (Y ∨ Z).

La formule obtenue est une FNC équivalente à celle de départ. 

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 82/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Algorithme de mise sous FNC - (1)

Quelques précisions supplémentaires :


Les clauses valides (comportant deux littéraux opposés)
peuvent être supprimées ;
Les répétitions de littéraux au sein d’une même clause peuvent
aussi être supprimées.
Si, dans une FNC, une clause ci est incluse dans une clause cj ,
la clause cj peut être supprimée (ci subsume cj ).
Exemple : (p ∨ q) ∧ p −→ p.
Une FNC comportant la clause vide peut être réduite à cette
seule clause.
La FNC ainsi obtenue est dite pure.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 83/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Algorithme de mise sous FNC - (1)

Quelques précisions supplémentaires :


Les clauses valides (comportant deux littéraux opposés)
peuvent être supprimées ;
Les répétitions de littéraux au sein d’une même clause peuvent
aussi être supprimées.
Si, dans une FNC, une clause ci est incluse dans une clause cj ,
la clause cj peut être supprimée (ci subsume cj ).
Exemple : (p ∨ q) ∧ p −→ p.
Une FNC comportant la clause vide peut être réduite à cette
seule clause.
La FNC ainsi obtenue est dite pure.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 83/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Algorithme de mise sous FNC - (1)

Quelques précisions supplémentaires :


Les clauses valides (comportant deux littéraux opposés)
peuvent être supprimées ;
Les répétitions de littéraux au sein d’une même clause peuvent
aussi être supprimées.
Si, dans une FNC, une clause ci est incluse dans une clause cj ,
la clause cj peut être supprimée (ci subsume cj ).
Exemple : (p ∨ q) ∧ p −→ p.
Une FNC comportant la clause vide peut être réduite à cette
seule clause.
La FNC ainsi obtenue est dite pure.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 83/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Algorithme de mise sous FNC - (1)

Quelques précisions supplémentaires :


Les clauses valides (comportant deux littéraux opposés)
peuvent être supprimées ;
Les répétitions de littéraux au sein d’une même clause peuvent
aussi être supprimées.
Si, dans une FNC, une clause ci est incluse dans une clause cj ,
la clause cj peut être supprimée (ci subsume cj ).
Exemple : (p ∨ q) ∧ p −→ p.
Une FNC comportant la clause vide peut être réduite à cette
seule clause.
La FNC ainsi obtenue est dite pure.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 83/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Algorithme de mise sous FNC - (1)

Quelques précisions supplémentaires :


Les clauses valides (comportant deux littéraux opposés)
peuvent être supprimées ;
Les répétitions de littéraux au sein d’une même clause peuvent
aussi être supprimées.
Si, dans une FNC, une clause ci est incluse dans une clause cj ,
la clause cj peut être supprimée (ci subsume cj ).
Exemple : (p ∨ q) ∧ p −→ p.
Une FNC comportant la clause vide peut être réduite à cette
seule clause.
La FNC ainsi obtenue est dite pure.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 83/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Algorithme de mise sous FNC - (1)

Quelques précisions supplémentaires :


Les clauses valides (comportant deux littéraux opposés)
peuvent être supprimées ;
Les répétitions de littéraux au sein d’une même clause peuvent
aussi être supprimées.
Si, dans une FNC, une clause ci est incluse dans une clause cj ,
la clause cj peut être supprimée (ci subsume cj ).
Exemple : (p ∨ q) ∧ p −→ p.
Une FNC comportant la clause vide peut être réduite à cette
seule clause.
La FNC ainsi obtenue est dite pure.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 83/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Algorithme de mise sous FNC - (2)

La FNC vide équivaut à V,


Une FNC ne contenant que la clause vide équivaut à F.
Une FNC est valide si et seulement si toutes ses clauses sont
valides.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 84/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Algorithme de mise sous FNC - (2)

La FNC vide équivaut à V,


Une FNC ne contenant que la clause vide équivaut à F.
Une FNC est valide si et seulement si toutes ses clauses sont
valides.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 84/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Algorithme de mise sous FNC - (2)

La FNC vide équivaut à V,


Une FNC ne contenant que la clause vide équivaut à F.
Une FNC est valide si et seulement si toutes ses clauses sont
valides.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 84/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Exemple de mise sous FNC

Réduisons la formule suivante sous sa FNC équivalente :

(p ⇒ (q ⇒ r)) ⇒ ((p ∧ s) ⇒ r). (4)

Chaque formule qui va suivre est équivalente à (4).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 85/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Exemple de mise sous FNC : 1ère étape

Élimination de l’implication :
(p ⇒ (q ⇒ r)) ⇒ ((p ∧ s) ⇒ r);
¬(p ⇒ (q ⇒ r)) ∨ ((p ∧ s) ⇒ r);
¬(¬p ∨ (q ⇒ r)) ∨ (¬(p ∧ s) ∨ r);
¬(¬p ∨ (¬q ∨ r)) ∨ (¬(p ∧ s) ∨ r);

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 86/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Exemple de mise sous FNC : 2ème étape

Transfert de la négation :
¬(¬p ∨ (¬q ∨ r)) ∨ (¬(p ∧ s) ∨ r);
(¬¬p ∧ ¬(¬q ∨ r)) ∨ ((¬p ∨ ¬s) ∨ r);
(¬¬p ∧ (¬¬q ∧ ¬r)) ∨ ((¬p ∨ ¬s) ∨ r);
(p ∧ (q ∧ ¬r)) ∨ ((¬p ∨ ¬s) ∨ r);

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 87/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Exemple de mise sous FNC : 3ème étape

Application de la distributivité et simplification :


(p ∧ (q ∧ ¬r)) ∨ ((¬p ∨ ¬s) ∨ r);
(p ∨ ((¬p ∨ ¬s) ∨ r)) ∧ ((q ∧ ¬r) ∨ ((¬p ∨ ¬s) ∨ r));
(p ∨ (¬p ∨ ¬s) ∨ r) ∧ (q ∨ (¬p ∨ ¬s) ∨ r) ∧ (¬r ∨ (¬p ∨ ¬s) ∨ r));
(p ∨ ¬p ∨ ¬s ∨ r) ∧ (q ∨ ¬p ∨ ¬s ∨ r) ∧ (¬r ∨ ¬p ∨ ¬s ∨ r));
V ∧ (q ∨ ¬p ∨ ¬s ∨ r) ∧ V;
(q ∨ ¬p ∨ ¬s ∨ r).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 88/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Représentation canonique

Exemple de mise sous FNC : conclusion

La FNC obtenue comporte une seule clause : (q ∨ ¬p ∨ ¬s ∨ r).


On en déduit que que la formule de départ n’est fausse que si
p et s sont vrais et q et r sont faux.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 89/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Plan : 1 - Chapitre 1. Logique Propositionnelle

Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 90/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Quine appliqué aux FNC

Davis et Putnam ont proposé un algorithme basé l’algorithme


de Quine pour tester la validité ou la consistance.
L’intérêt est que l’algorithme de Quine se simplifie lorsqu’il est
appliqué à une FNC.

1 Le problème de la validité devient trivial : il s’agit de vérifier


que chaque clause est une tautologie, i.e. vérifier que chaque
clause contient un paire de littéraux opposés.
2 Le test de la consistance de FNC à l’aide de l’algorithme de
Quine est plus intéressant (→) :

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 91/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Quine appliqué aux FNC(1)

Pour simplifier les choses, on considère que la FNC à tester est


pure.
Étant donné une proposition p, la FNC pure S se partitionne
en Sp (clauses contenant p), S¬p (clauses contenant ¬p) et
S\(Sp ∪ S¬p ) (clauses restantes).
L’algorithme est récursif et utilise le paradigme DPR : le
problème de la consistance posé pour un ensemble S, est
ramené au même problème, posé pour pour deux ensembles
plus simples que S, car ne contenant plus d’occurrence de la
proposition p.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 92/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Quine appliqué aux FNC (2)

Fonction QuineFNC(S : FNC pure) : booléen


Si S = ∅, Alors Retourner V //S est consistant
Sinon Si S = {F}, Alors Retourner F //S est inconsistant
Sinon
1 (Réduire S puis) Choisir une proposition p dans S ;
2 Calculer Sp , S¬p et S 00 ← S\(Sp ∪ S¬p ) ; puis calculer
3 Sp0 ← Sp dont les clauses sont privées de p (i.e., p ← F) ; puis
0 ←S
4 S¬p ¬p dont les clauses sont privées de ¬p (i.e., p ← V) ;
5 Retourner (QuineFNC(Sp0 ∪ S 00 ) ∨ QuineFNC(S¬p 0 ∪ S 00 ))

//(Sp0 ∪ S 00 ) : branche ¬p ; (S¬p0 ∪ S 00 ) : branche p de l’arbre.


0 00
//S inconsistant ssi (Sp ∪ S ) ET (S¬p 0 ∪ S 00 ) inconsistants.

Fin Si

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 93/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Quine appliqué aux FNC : exemple

Déterminons si l’ensemble suivant est inconsistant :

S = {p ∨ q, p ∨ r, ¬q ∨ ¬r, ¬p}

On choisit la proposition p ; on obtient :


Sp = {p ∨ q, p ∨ r}, S¬p = {¬p}, S 00 = {¬q ∨ ¬r} ;
Sp0 = {q, r}, S¬p
0 = {F} ;
0 00
(Sp ∪ S ) = {q, r, ¬q ∨ ¬r}, (S¬p 0 ∪ S 00 ) = {F, ¬q ∨ ¬r}.

0 ∪ S 00 ) est inconsistant :
Visiblement l’ensemble (S¬p
0 00
(S¬p ∪ S ) est inconsistant si et seulement si {F, ¬q ∨ ¬r} |= F,
c’est-à-dire (F ∧ (¬q ∨ ¬r)) ⇒ F, ce qui est évident.
Il suffit donc de tester l’inconsistance de U = (Sp0 ∪ S 00 ).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 94/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Quine appliqué aux FNC : exemple

Déterminons si l’ensemble suivant est inconsistant :

S = {p ∨ q, p ∨ r, ¬q ∨ ¬r, ¬p}

On choisit la proposition p ; on obtient :


Sp = {p ∨ q, p ∨ r}, S¬p = {¬p}, S 00 = {¬q ∨ ¬r} ;
Sp0 = {q, r}, S¬p
0 = {F} ;
0 00
(Sp ∪ S ) = {q, r, ¬q ∨ ¬r}, (S¬p 0 ∪ S 00 ) = {F, ¬q ∨ ¬r}.

0 ∪ S 00 ) est inconsistant :
Visiblement l’ensemble (S¬p
0 00
(S¬p ∪ S ) est inconsistant si et seulement si {F, ¬q ∨ ¬r} |= F,
c’est-à-dire (F ∧ (¬q ∨ ¬r)) ⇒ F, ce qui est évident.
Il suffit donc de tester l’inconsistance de U = (Sp0 ∪ S 00 ).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 94/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Quine appliqué aux FNC : exemple

Déterminons si l’ensemble suivant est inconsistant :

S = {p ∨ q, p ∨ r, ¬q ∨ ¬r, ¬p}

On choisit la proposition p ; on obtient :


Sp = {p ∨ q, p ∨ r}, S¬p = {¬p}, S 00 = {¬q ∨ ¬r} ;
Sp0 = {q, r}, S¬p
0 = {F} ;
0 00
(Sp ∪ S ) = {q, r, ¬q ∨ ¬r}, (S¬p 0 ∪ S 00 ) = {F, ¬q ∨ ¬r}.

0 ∪ S 00 ) est inconsistant :
Visiblement l’ensemble (S¬p
0 00
(S¬p ∪ S ) est inconsistant si et seulement si {F, ¬q ∨ ¬r} |= F,
c’est-à-dire (F ∧ (¬q ∨ ¬r)) ⇒ F, ce qui est évident.
Il suffit donc de tester l’inconsistance de U = (Sp0 ∪ S 00 ).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 94/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Quine appliqué aux FNC : exemple

Testons l’inconsistance de U = (Sp0 ∪ S 00 ) = {q, r, ¬q ∨ ¬r} :


On choisit la proposition q ; on obtient :
Uq = {q}, U¬q = {¬q ∨ ¬r}, U 00 = {r} ;
Uq0 = F, U¬q
0 = {¬r} ;
0 00 0 ∪ U 00 ) = {¬r, r}.
(Uq ∪ U ) = {F, r}, (U¬q
Les ensembles (Uq0 ∪ U 00 ) et (U¬q
0 ∪ U 00 ) sont inconsistants, ce qui

termine la vérification : S est inconsistant.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 95/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Quine appliqué aux FNC : exercices

Appliquer l’algorithme de QuineFNC à la formule suivante :


(p ⇒ (q ⇒ r)) ;

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 96/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Davis et Putnam (3)

L’algorithme de Davis et Putnam tire parti de la forme


normale de la formule testée pour sélectionner les propositions
dans un ordre optimal.
Cela évite la construction de branches inutiles dans l’arbre
sémantique.
L’algorithme de Davis et Putnam s’appuie donc sur celui de
Quine et l’améliore à l’aide des règles suivantes :
Algorithme de Davis et Putnam
Sélectionner p en priorité lors de l’étape n◦ 1 de l’algorithme de Quine
dans les deux cas suivants :
S contient l’une des clauses à un seul littéral p ou ¬p ;
Un seul des littéraux p et ¬p intervient dans S.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 97/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Davis et Putnam (3)

L’algorithme de Davis et Putnam tire parti de la forme


normale de la formule testée pour sélectionner les propositions
dans un ordre optimal.
Cela évite la construction de branches inutiles dans l’arbre
sémantique.
L’algorithme de Davis et Putnam s’appuie donc sur celui de
Quine et l’améliore à l’aide des règles suivantes :
Algorithme de Davis et Putnam
Sélectionner p en priorité lors de l’étape n◦ 1 de l’algorithme de Quine
dans les deux cas suivants :
S contient l’une des clauses à un seul littéral p ou ¬p ;
Un seul des littéraux p et ¬p intervient dans S.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 97/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Davis et Putnam (3)

L’algorithme de Davis et Putnam tire parti de la forme


normale de la formule testée pour sélectionner les propositions
dans un ordre optimal.
Cela évite la construction de branches inutiles dans l’arbre
sémantique.
L’algorithme de Davis et Putnam s’appuie donc sur celui de
Quine et l’améliore à l’aide des règles suivantes :
Algorithme de Davis et Putnam
Sélectionner p en priorité lors de l’étape n◦ 1 de l’algorithme de Quine
dans les deux cas suivants :
S contient l’une des clauses à un seul littéral p ou ¬p ;
Un seul des littéraux p et ¬p intervient dans S.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 97/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Davis et Putnam (4)

Exploitation des mono-littéraux : si on a un mono-littéral l


pour la variable xl :
on instancie xl 1 si l = xl ;
on instancie xl 0 si l = ¬xl .
Exploitation des littéraux purs : si on a un littéral pur l pour la
variable xl :
(littéral pur = littéral n’apparaissant que sous une seule forme
(positive ou négative))
on instancie xl à 1 si l = xl ;
on instancie xl à 0 si l = ¬xl .

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 98/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Davis et Putnam (5)

Supposons par exemple que S contienne la clause {p} ; l’ensemble


(Sp0 ∪ S 00 ) contient la clause vide et est donc dès lors inconsistant.
L’inconsistance éventuelle de S se ramène donc à celle de
0
(S¬p ∪ S 00 ).
D’autre part, si p intervient dans S alors que ¬p n’intervient pas,
0
S¬p est vide ;
L’inconsistance éventuelle de S se ramène finalement à celle de S 00 .
Cette stratégie, quand elle est applicable, accroît fortement
l’efficacité de l’algorithme.
Elle réduit le problème de l’inconsistance de S à celui de
l’inconsisitance d’un seul ensemble S 00 plus simple que S.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 99/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Davis et Putnam (6)

Il existe de nombreuses améliorations de Davis et Putnam :


Posit
Satz
zChaff
...

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 100/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Algorithme de Davis et Putnam

Algorithme de Davis et Putnam : exercice (1)

Établir la validité de la formule suivante, qui exprime un


procédé de démonstration logique : la disjonction des cas.
On représente l’hypothèse par h, les deux cas possibles par p
et q, et la conclusion par c.
Il faut prouver :

{h, h ⇒ (p ∨ q), p ⇒ c, q ⇒ c} |= c,

ce qui revient à prouver l’inconsistance de l’ensemble :

{h, h ⇒ (p ∨ q), p ⇒ c, q ⇒ c, ¬c}.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 101/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Plan : 1 - Chapitre 1. Logique Propositionnelle

Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 102/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Introduction

On sait déterminer facilement la validité d’une FNC ;


Pas de critère général pour déterminer efficacement si une
FNC est consistante ou pas : Davis et Putnam n’est qu’une
amélioration de Quine, qui lui-même ne peut être
systématiquement efficace.

Il existe cependant une méthode permettant de vérifier


l’inconsistance d’un ensemble S de clauses, c’est-à-dire lorsque
F en est la conséquence logique :
On va générer l’ensemble des conséquences logiques de S
jusqu’à obtention de la clause vide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 103/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Introduction

On sait déterminer facilement la validité d’une FNC ;


Pas de critère général pour déterminer efficacement si une
FNC est consistante ou pas : Davis et Putnam n’est qu’une
amélioration de Quine, qui lui-même ne peut être
systématiquement efficace.

Il existe cependant une méthode permettant de vérifier


l’inconsistance d’un ensemble S de clauses, c’est-à-dire lorsque
F en est la conséquence logique :
On va générer l’ensemble des conséquences logiques de S
jusqu’à obtention de la clause vide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 103/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Principe de résolution
Pour engendrer des conséquences logiques, on utilise le principe
simple suivant :
Soit A, B et X des formules.
Supposons que les deux formules (A ∨ X) et (B ∨ ¬X) sont
vraies.
Si X est vrai aussi, on en déduit que B est vrai.
Si X est faux, on en déduit que A est vrai.
Dans les deux cas, (A ∨ B) est vrai, ce qui s’écrit :

{A ∨ X, B ∨ ¬X} |= (A ∨ B),

qui peut aussi s’écrire :

{¬X ⇒ A, X ⇒ B} |= (A ∨ B).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 104/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Principe de résolution
Pour engendrer des conséquences logiques, on utilise le principe
simple suivant :
Soit A, B et X des formules.
Supposons que les deux formules (A ∨ X) et (B ∨ ¬X) sont
vraies.
Si X est vrai aussi, on en déduit que B est vrai.
Si X est faux, on en déduit que A est vrai.
Dans les deux cas, (A ∨ B) est vrai, ce qui s’écrit :

{A ∨ X, B ∨ ¬X} |= (A ∨ B),

qui peut aussi s’écrire :

{¬X ⇒ A, X ⇒ B} |= (A ∨ B).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 104/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Règle de résolution

Dans le cas où S est une proposition et où A et B sont des clauses,


la règle précédente est appelée règle de résolution. La validité de la
règle de résolution se traduit par le lemme suivant :
Lemme 1
Soit s1 et s2 deux clauses appartenant à la FNC S et soit l un littéral.
Si l ∈ s1 et ¬l ∈ s2 , alors la clause r = (s1 \{l}) ∪ (s2 \{¬l}) est
une conséquence logique de la FNC S.

Corollaire
Les FNC S et S ∪{r} sont équivalentes. La clause r est alors appelée
[clause] résolvante des clauses s1 et s2 .

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 105/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Règle de résolution

Dans le cas où S est une proposition et où A et B sont des clauses,


la règle précédente est appelée règle de résolution. La validité de la
règle de résolution se traduit par le lemme suivant :
Lemme 1
Soit s1 et s2 deux clauses appartenant à la FNC S et soit l un littéral.
Si l ∈ s1 et ¬l ∈ s2 , alors la clause r = (s1 \{l}) ∪ (s2 \{¬l}) est
une conséquence logique de la FNC S.

Corollaire
Les FNC S et S ∪{r} sont équivalentes. La clause r est alors appelée
[clause] résolvante des clauses s1 et s2 .

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 105/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Règle de résolution

Dans le cas où S est une proposition et où A et B sont des clauses,


la règle précédente est appelée règle de résolution. La validité de la
règle de résolution se traduit par le lemme suivant :
Lemme 1
Soit s1 et s2 deux clauses appartenant à la FNC S et soit l un littéral.
Si l ∈ s1 et ¬l ∈ s2 , alors la clause r = (s1 \{l}) ∪ (s2 \{¬l}) est
une conséquence logique de la FNC S.

Corollaire
Les FNC S et S ∪{r} sont équivalentes. La clause r est alors appelée
[clause] résolvante des clauses s1 et s2 .

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 105/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Algorithme de résolution clausale

Algorithme de résolution clausale


Booléen Modifié ← V
Tant Que F ∈ / S ET Modifié Faire
Si il existe l, s1 , s2 tels que : l ∈ s1 et ¬l ∈ s2 Alors
Calculer la clause r résolvante de s1 et s2 ;
Remplacer S par S ∪ {r}.
Sinon Modifié ← F
FinSi
Fin Tant Que

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 106/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Résolution clausale : exemple (1)


A titre d’exemple, on vérifie l’inconsistance de l’ensemble :

S = {p ∨ q, p ∨ r, ¬q ∨ ¬r, ¬p}
(déjà établie précédemment).

Il est pratique de numéroter les clauses pour le cheminement de la


résolution.

no de clause clause provenance


1. p∨q S
2. p∨r S
3. ¬q ∨ ¬r S
4. ¬p S

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 107/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Résolution clausale : exemple (1)


A titre d’exemple, on vérifie l’inconsistance de l’ensemble :

S = {p ∨ q, p ∨ r, ¬q ∨ ¬r, ¬p}
(déjà établie précédemment).

Il est pratique de numéroter les clauses pour le cheminement de la


résolution.

no de clause clause provenance


1. p∨q S
2. p∨r S
3. ¬q ∨ ¬r S
4. ¬p S

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 107/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Résolution clausale : exemple (2)


Des résolvantes sont calculées et adjointes à S.
Chaque clause ci-dessous est une résolvante de clauses
précédentes, dont les numéros sont donnés à droite.
no clause provenance
5. p ∨ ¬r (1,3)
6. q (1,4)
7. p ∨ ¬q (2,3)
8. r (2,4)
9. p (2,5)
10. ¬r (3,6)
11. ¬q (3,8)
12. ¬r (4,5)
13. ¬q (4,7)
14. F (4,9)
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 108/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Résolution clausale : exemple (2)


Des résolvantes sont calculées et adjointes à S.
Chaque clause ci-dessous est une résolvante de clauses
précédentes, dont les numéros sont donnés à droite.
no clause provenance
5. p ∨ ¬r (1,3)
6. q (1,4)
7. p ∨ ¬q (2,3)
8. r (2,4)
9. p (2,5)
10. ¬r (3,6)
11. ¬q (3,8)
12. ¬r (4,5)
13. ¬q (4,7)
14. F (4,9)
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 108/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Résolution clausale : exemple (3)


L’algorithme de résolution clausale est non déterministe : il y a
généralement plus d’un choix possible pour l, s1 et s2 .
Dans l’exemple précédent, nous avons choisi s1 et s2 selon
l’ordre lexicographique de leur numéro.
Cette stratégie n’est pas optimale : certaines résolvantes ont
été calculées inutilement, plus d’une fois dans certains cas.
A titre de comparaison, voyons maintenant une application de
l’algorithme avec un nombre minimal d’utilisations de la règle
de résolution :
no clause provenance
5. q (1,4)
6. r (2,4)
7. ¬q (3,6)
8. F (5,7)
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 109/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Résolution clausale : exemple (3)


L’algorithme de résolution clausale est non déterministe : il y a
généralement plus d’un choix possible pour l, s1 et s2 .
Dans l’exemple précédent, nous avons choisi s1 et s2 selon
l’ordre lexicographique de leur numéro.
Cette stratégie n’est pas optimale : certaines résolvantes ont
été calculées inutilement, plus d’une fois dans certains cas.
A titre de comparaison, voyons maintenant une application de
l’algorithme avec un nombre minimal d’utilisations de la règle
de résolution :
no clause provenance
5. q (1,4)
6. r (2,4)
7. ¬q (3,6)
8. F (5,7)
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 109/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Preuve par réfutation

La méthode de résolution est utilisée comme mécanisme de


preuve pour mettre en œuvre le principe de déduction déjà
évoqué.
Pour prouver qu’une conclusion C est une conséquence logique
d’un ensemble d’hypothèses {H1 , ..., Hn }, on appliquera la
résolution à l’ensemble {H1 , ..., Hn , ¬C}.
C’est la résolution par réfutation.
Attention : les hypothèses et la négation de la conclusion
doivent être des clauses.
Rq : la résolution est aussi le mécanisme qui est à la base de
l’exécution des instructions en langage Prolog.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 110/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Preuve par réfutation

La méthode de résolution est utilisée comme mécanisme de


preuve pour mettre en œuvre le principe de déduction déjà
évoqué.
Pour prouver qu’une conclusion C est une conséquence logique
d’un ensemble d’hypothèses {H1 , ..., Hn }, on appliquera la
résolution à l’ensemble {H1 , ..., Hn , ¬C}.
C’est la résolution par réfutation.
Attention : les hypothèses et la négation de la conclusion
doivent être des clauses.
Rq : la résolution est aussi le mécanisme qui est à la base de
l’exécution des instructions en langage Prolog.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 110/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Preuve par réfutation

La méthode de résolution est utilisée comme mécanisme de


preuve pour mettre en œuvre le principe de déduction déjà
évoqué.
Pour prouver qu’une conclusion C est une conséquence logique
d’un ensemble d’hypothèses {H1 , ..., Hn }, on appliquera la
résolution à l’ensemble {H1 , ..., Hn , ¬C}.
C’est la résolution par réfutation.
Attention : les hypothèses et la négation de la conclusion
doivent être des clauses.
Rq : la résolution est aussi le mécanisme qui est à la base de
l’exécution des instructions en langage Prolog.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 110/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Preuve par réfutation : exercice

Reconsidérons le problème de la disjonction des cas, présenté


en exercice d’application de l’algorithme de Davis et Putnam.
On voulait prouver :

{h, h ⇒ (p ∨ q), p ⇒ c, q ⇒ c} |= c,

Pour le prouver avec la résolution clausale par réfutation, on


va donc appliquer la résolution clausale à l’ensemble de clause
suivant (incluant la non conclusion) pour montrer qu’il est
inconsitant :

{h, h ⇒ (p ∨ q), p ⇒ c, q ⇒ c, ¬c}

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 111/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Preuve par réfutation : exercice

Reconsidérons le problème de la disjonction des cas, présenté


en exercice d’application de l’algorithme de Davis et Putnam.
On voulait prouver :

{h, h ⇒ (p ∨ q), p ⇒ c, q ⇒ c} |= c,

Pour le prouver avec la résolution clausale par réfutation, on


va donc appliquer la résolution clausale à l’ensemble de clause
suivant (incluant la non conclusion) pour montrer qu’il est
inconsitant :

{h, h ⇒ (p ∨ q), p ⇒ c, q ⇒ c, ¬c}

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 111/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Résolution et clause de Horn

La méthode de résolution est, en toute généralité, relativement


inefficace.
Il existe des cas particuliers pour lesquels elle se révèle
cependant assez efficace.
Le cas le plus important est celui des clauses de Horn.
Les clauses de Horn sont des clauses comportant au plus un
littéral positif.
Par exemple, les clauses suivantes : (¬p ∨ ¬q ∨ ¬r ∨ ¬s) et
(¬p ∨ ¬q ∨ ¬r ∨ s) sont des clauses de Horn.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 112/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Résolution et clause de Horn

La méthode de résolution est, en toute généralité, relativement


inefficace.
Il existe des cas particuliers pour lesquels elle se révèle
cependant assez efficace.
Le cas le plus important est celui des clauses de Horn.
Les clauses de Horn sont des clauses comportant au plus un
littéral positif.
Par exemple, les clauses suivantes : (¬p ∨ ¬q ∨ ¬r ∨ ¬s) et
(¬p ∨ ¬q ∨ ¬r ∨ s) sont des clauses de Horn.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 112/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Clause de Horn, faits et règles (1)

Une clause de Horn est stricte si elle comporte un littéral


positif, elle est négative sinon.
Par exemple (¬p ∨ ¬q ∨ ¬r ∨ s) est une clause de Horn stricte
alors que (¬p ∨ ¬q ∨ ¬r ∨ ¬s) est une clause de Horn négative.
Une clause stricte représente souvent une règle : les littéraux
négatifs correspondent à des hypothèses (représentées par les
propositions sous-jecentes), et le littéral positif correspond à la
conclusion.
Une règle est une formule permettant de déduire une autre
formule. Si l’on prend la forme non FNCde la clause, c’est
évident : (¬p ∨ ¬q ∨ ¬r ∨ s) ⇔ (p ∧ q ∧ r ⇒ s)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 113/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Clause de Horn, faits et règles (1)

Une clause de Horn est stricte si elle comporte un littéral


positif, elle est négative sinon.
Par exemple (¬p ∨ ¬q ∨ ¬r ∨ s) est une clause de Horn stricte
alors que (¬p ∨ ¬q ∨ ¬r ∨ ¬s) est une clause de Horn négative.
Une clause stricte représente souvent une règle : les littéraux
négatifs correspondent à des hypothèses (représentées par les
propositions sous-jecentes), et le littéral positif correspond à la
conclusion.
Une règle est une formule permettant de déduire une autre
formule. Si l’on prend la forme non FNCde la clause, c’est
évident : (¬p ∨ ¬q ∨ ¬r ∨ s) ⇔ (p ∧ q ∧ r ⇒ s)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 113/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Clause de Horn, faits et règles (1)

Explication : la clause de Horn suivante (¬h1 ∨ ¬h2 ∨ ¬h3 ∨ c) :

⇔ (¬(¬(¬h1 ∨ ¬h2 ∨ ¬h3 )) ∨ c)


⇔ (¬(¬h1 ∨ ¬h2 ∨ ¬h3 ) ⇒ c)
⇔ ((h1 ∧ h2 ∧ h3 ) ⇒ c),

qui est bien la conjonction d’un ensemble d’hypothèses impliquant


une conclusion.
Une clause unitaire positive (but), représente un fait : une
conclusion ne dépendant d’aucune hypothèse.
On cherche souvent à déterminer si but est bien la conséquence
logique d’un ensemble de faits et de règles.
La méthode de résolution est ainsi une méthode de preuve par
réfutation : une contradiction (la clause vide) est inférée à partir des
faits, des règles et de la négation du but.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 114/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Clause de Horn, faits et règles (1)

Explication : la clause de Horn suivante (¬h1 ∨ ¬h2 ∨ ¬h3 ∨ c) :

⇔ (¬(¬(¬h1 ∨ ¬h2 ∨ ¬h3 )) ∨ c)


⇔ (¬(¬h1 ∨ ¬h2 ∨ ¬h3 ) ⇒ c)
⇔ ((h1 ∧ h2 ∧ h3 ) ⇒ c),

qui est bien la conjonction d’un ensemble d’hypothèses impliquant


une conclusion.
Une clause unitaire positive (but), représente un fait : une
conclusion ne dépendant d’aucune hypothèse.
On cherche souvent à déterminer si but est bien la conséquence
logique d’un ensemble de faits et de règles.
La méthode de résolution est ainsi une méthode de preuve par
réfutation : une contradiction (la clause vide) est inférée à partir des
faits, des règles et de la négation du but.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 114/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Clause de Horn, faits et règles (1)

Explication : la clause de Horn suivante (¬h1 ∨ ¬h2 ∨ ¬h3 ∨ c) :

⇔ (¬(¬(¬h1 ∨ ¬h2 ∨ ¬h3 )) ∨ c)


⇔ (¬(¬h1 ∨ ¬h2 ∨ ¬h3 ) ⇒ c)
⇔ ((h1 ∧ h2 ∧ h3 ) ⇒ c),

qui est bien la conjonction d’un ensemble d’hypothèses impliquant


une conclusion.
Une clause unitaire positive (but), représente un fait : une
conclusion ne dépendant d’aucune hypothèse.
On cherche souvent à déterminer si but est bien la conséquence
logique d’un ensemble de faits et de règles.
La méthode de résolution est ainsi une méthode de preuve par
réfutation : une contradiction (la clause vide) est inférée à partir des
faits, des règles et de la négation du but.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 114/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Clause de Horn – (2)

Exemple : Supposons le raisonnement suivant à vérifier :


Si "il pleut" (p), et si "je suis dehors" (o), ou si "je suis sous
la douche" (d), alors "je suis mouillé" (m).
Ceci s’écrit ((p ∧ o) ∨ d) ⇒ m.
Sous FNC, cela devient :
(¬p ∨ ¬o ∨ m) ∧ (¬d ∨ ¬o ∨ m) ∧ (¬p ∨ ¬d ∨ m) ∧ (¬d ∨ m).
Cela fait quatre règles. Si l’on ajoute dans l’ensemble le fait
que d est vrai par exemple, on a alors le système suivant :
{(¬p ∨ ¬o ∨ m), (¬d ∨ ¬o ∨ m), (¬p ∨ ¬d ∨ m), (¬d ∨ m), d}.
Prouver par réfutation la conlusion, revient à parvenir à
générer F à partir de
{(¬ ∨ ¬o ∨ m), (¬d ∨ ¬o ∨ m), (¬p ∨ ¬d ∨ m), (¬d ∨ m), d, ¬m}.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 115/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Clause de Horn – (2)

Exemple : Supposons le raisonnement suivant à vérifier :


Si "il pleut" (p), et si "je suis dehors" (o), ou si "je suis sous
la douche" (d), alors "je suis mouillé" (m).
Ceci s’écrit ((p ∧ o) ∨ d) ⇒ m.
Sous FNC, cela devient :
(¬p ∨ ¬o ∨ m) ∧ (¬d ∨ ¬o ∨ m) ∧ (¬p ∨ ¬d ∨ m) ∧ (¬d ∨ m).
Cela fait quatre règles. Si l’on ajoute dans l’ensemble le fait
que d est vrai par exemple, on a alors le système suivant :
{(¬p ∨ ¬o ∨ m), (¬d ∨ ¬o ∨ m), (¬p ∨ ¬d ∨ m), (¬d ∨ m), d}.
Prouver par réfutation la conlusion, revient à parvenir à
générer F à partir de
{(¬ ∨ ¬o ∨ m), (¬d ∨ ¬o ∨ m), (¬p ∨ ¬d ∨ m), (¬d ∨ m), d, ¬m}.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 115/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Clause de Horn – (2)

Exemple : Supposons le raisonnement suivant à vérifier :


Si "il pleut" (p), et si "je suis dehors" (o), ou si "je suis sous
la douche" (d), alors "je suis mouillé" (m).
Ceci s’écrit ((p ∧ o) ∨ d) ⇒ m.
Sous FNC, cela devient :
(¬p ∨ ¬o ∨ m) ∧ (¬d ∨ ¬o ∨ m) ∧ (¬p ∨ ¬d ∨ m) ∧ (¬d ∨ m).
Cela fait quatre règles. Si l’on ajoute dans l’ensemble le fait
que d est vrai par exemple, on a alors le système suivant :
{(¬p ∨ ¬o ∨ m), (¬d ∨ ¬o ∨ m), (¬p ∨ ¬d ∨ m), (¬d ∨ m), d}.
Prouver par réfutation la conlusion, revient à parvenir à
générer F à partir de
{(¬ ∨ ¬o ∨ m), (¬d ∨ ¬o ∨ m), (¬p ∨ ¬d ∨ m), (¬d ∨ m), d, ¬m}.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 115/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Algorithme de résolution et clauses de Horn (1)

Dans le cadre de l’étude des clauses de Horn, une clause


peut-être notée comme un ensemble disjoint de littéraux.
Par exemple, la clause de Horn (¬p ∨ ¬q ∨ ¬r ∨ s) pourra être
notée {¬p, ¬q, ¬r, s} où les ’,’ représentant donc des ∨.
Considérons un ensemble S de clauses de Horn (sans
tautologie).
La consistance de S peut-être testée par l’algorithme suivant :
(Suite →)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 116/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Algorithme de résolution et clauses de Horn (1)

Dans le cadre de l’étude des clauses de Horn, une clause


peut-être notée comme un ensemble disjoint de littéraux.
Par exemple, la clause de Horn (¬p ∨ ¬q ∨ ¬r ∨ s) pourra être
notée {¬p, ¬q, ¬r, s} où les ’,’ représentant donc des ∨.
Considérons un ensemble S de clauses de Horn (sans
tautologie).
La consistance de S peut-être testée par l’algorithme suivant :
(Suite →)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 116/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Algorithme de résolution et clauses de Horn – (2)

Algorithme de résolution sur clauses de Horn


Booléen Modifié ← V
Tant Que F ∈ / S ET Modifié Faire
Si il existe p et c tels que :
p est une clause unitaire positive de S,
c est une clause de S contenant ¬p ;
Alors
Calculer la clause résolvante r ;
Remplacer S par (S\{c}) ∪ {r}.
Sinon Modifié ← F
FinSi
Fin Tant Que

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 117/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Algorithme de résolution et clauses de Horn – (3)

Cet algorithme, qui ressemble fortement au précédent


algorithme de résolution, n’est utilisable que pour un ensemble
de clauses de Horn.
Il en diffère par le fait que, à chaque étape, un littéral est
supprimé dans une des clauses, la clause r étant la clause c à
laquelle on a supprimé ¬p.
L’algorithme se termine toujours, soit par la production de la
clause vide, soit par la production d’un ensemble S ne
comportant plus de clauses p et c adéquates.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 118/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Algorithme de résolution et clauses de Horn – (3)

Cet algorithme, qui ressemble fortement au précédent


algorithme de résolution, n’est utilisable que pour un ensemble
de clauses de Horn.
Il en diffère par le fait que, à chaque étape, un littéral est
supprimé dans une des clauses, la clause r étant la clause c à
laquelle on a supprimé ¬p.
L’algorithme se termine toujours, soit par la production de la
clause vide, soit par la production d’un ensemble S ne
comportant plus de clauses p et c adéquates.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 118/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Technique de résolution

Algorithme de résolution et clauses de Horn – Exemple

A titre d’exemple, vérifions l’inconsistance de l’ensemble :


S = {p ∨ ¬r ∨ ¬t, q, r, t ∨ ¬p ∨ ¬r, t ∨ ¬q, ¬p ∨ ¬q ∨ ¬r}.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 119/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Plan : 1 - Chapitre 1. Logique Propositionnelle

Introduction
Syntaxe
Sémantique
Algorithmique
Équivalence et dualité de formules
Représentation canonique
Algorithme de Davis et Putnam
Technique de résolution
Système formel, déduction et démonstration

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 120/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Système formel

Définition — Système formel


Un système formel (ou théorie formelle) S est la donnée de :
un ensemble dénombrable V de symboles ;
un sous-ensemble F de V ∗ appelé ensemble des formules ;
un sous-ensemble A de F appelé ensemble des axiomes ;
un ensemble fini R de règles de déduction ou d’inférence

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 121/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Règles d’inférence et preuves (1)

Définition — Règle d’inférence


Une règle d’inférence est la donnée d’un ensemble d’expressions de
départ (ou prémisses) et d’une expression d’arrivée, la conclusion.

La mécanique de production des conclusions est purement


syntaxique.
On obtient ainsi de nouvelles expressions à partir d’expressions
existantes et de règles.
Dans le cas particulier où le nombre de prémisses est nul, on
dit que la règle est un axiome (i.e., toujours applicable).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 122/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Règles d’inférence et preuves (2)


Une règle d’inférence a en général pour rôle de formaliser un
principe de raisonnement.
Une règle d’inférence se note de la façon suivante :

premisse1 ... premissen


.
conlusion

En général, n ≤ 2.
Exemple — Modus ponens
La règle dite du modus ponens permet de déduire n’importe quelle
formule B à partir des formules A ⇒ B et A. On note cette règle :

A⇒B A
M odus ponens
B

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 123/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Règles d’inférence et preuves (2)


Une règle d’inférence a en général pour rôle de formaliser un
principe de raisonnement.
Une règle d’inférence se note de la façon suivante :

premisse1 ... premissen


.
conlusion

En général, n ≤ 2.
Exemple — Modus ponens
La règle dite du modus ponens permet de déduire n’importe quelle
formule B à partir des formules A ⇒ B et A. On note cette règle :

A⇒B A
M odus ponens
B

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 123/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Règles d’inférence et preuves (3)

Les notations des règles d’inférences peuvent varier. On utilise


souvent la notation de déduction logique comme celle de
prémisses-conclusion.
Exemple
L’écriture :
{A ⇒ B, A} |= B
est équivalente à :

A⇒B A
M odus ponens
B

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 124/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Règles d’inférence et preuves (3)

Les notations des règles d’inférences peuvent varier. On utilise


souvent la notation de déduction logique comme celle de
prémisses-conclusion.
Exemple
L’écriture :
{A ⇒ B, A} |= B
est équivalente à :

A⇒B A
M odus ponens
B

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 124/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Règles d’inférence et preuves (4)

Exemple
Concernant le principe de résolution, on a donc totale équivalence
entre l’écriture : {A ∨ X, B ∨ ¬X} |= (A ∨ B) et

A∨X B ∨ ¬X
Resolution
A∨B
qui peut aussi s’écrire : {¬X ⇒ A, X ⇒ B} |= (A ∨ B) et
correspond à la règle :

¬X ⇒ A X⇒B
Resolution
A∨B

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 125/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Règles d’inférence et preuves (4)

Exemple
Concernant le principe de résolution, on a donc totale équivalence
entre l’écriture : {A ∨ X, B ∨ ¬X} |= (A ∨ B) et

A∨X B ∨ ¬X
Resolution
A∨B
qui peut aussi s’écrire : {¬X ⇒ A, X ⇒ B} |= (A ∨ B) et
correspond à la règle :

¬X ⇒ A X⇒B
Resolution
A∨B

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 125/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Théorie de la preuve

Un système formel permet produire de nouveaux énoncés à partir


d’énoncés existant.
Deux aspects déductifs sont à considérer :
1 Les preuves ou démonstrations.
2 Les simples déductions.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 126/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Système de preuve (1)

Définition — Démonstration
Soit A une formule dans un système formel S. Une démonstration
(ou preuve) de A dans S est une suite finie de formules
(A1 , ..., An ) dans lesquelles :
An = A ;
∀i ∈ [1..n], Ai est soit :
l’instance d’un axiome de S ;
une conséquence des énoncés précédents (A1 , ..., Ai−1 ) par
l’application d’une règle d’inférence de S.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 127/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Système de preuve (2)

Définition — Théorème
Une formule A est un théorème de S, si c’est le dernier élément
d’une démonstration. On le note ` A. En d’autres termes, A est un
théorème s’il en existe une preuve.

Définition. Consistance (corollaire).


Une formule A est consistante si ¬A n’est pas prouvable (0 ¬A).
Sinon, A est inconsistante.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 128/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Déduction

Définition — Déduction
Soit A une formule dans un système formel S. Soit H un ensemble
d’hypothèse {H1 , ..., Hn }. Une déduction de A à partir de H est
une suite finie de formules A1 , ...An dans lesquelles :
An = A ;
∀i ∈ [1..n], soit :
Ai est l’instance d’un axiome de S ;
Ai ∈ H
Ai est une conséquence des énoncés précédents (A1 , ..., Ai−1 )
par l’application d’une règle d’inférence de S.
On note alors : H |= A. On dit aussi que H est un modèle de A.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 129/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Exercice

Déduction à partir d’ensemble d’hypothèse vide


Que peut-on dire d’une déduction d’une formule F à partir d’un
ensemble d’hypothèses H (et d’axiomes A), si H = ∅ ?

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 130/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Exercice

Déduction à partir d’ensemble d’hypothèse vide


Que peut-on dire d’une déduction d’une formule F à partir d’un
ensemble d’hypothèses H (et d’axiomes A), si H = ∅ ?

Réponse :
Une déduction à partir d’un ensemble d’hypothèses vide est une
preuve (cf. déf. preuve). F est donc un théorème, démontrable
uniquement à partir des axiomes.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 130/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Principales règles d’inférence

Définition. Modus ponens.


A⇒B A
M odus ponens
B

Définition. Modus tollens.


A⇒B ¬B
M odus tollens
¬A

Définition. Syllogisme.
A⇒B B⇒C
Syllogisme
A⇒C

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 131/260


Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Système de preuve (3).


Un système de preuve doit satisfaire au moins une des deux
propriétés suivantes :
1 Ses règles doivent être correctes, c’est-à-dire que la
conclusion doit toujours être une conséquence logique de
l’ensemble des prémisses.
Exemple — la "règle" suivante n’est pas correcte.
A⇒B B
A

Si l’ensemble des règles du systèmes de preuve est correct, il


ne permettra de prouver que des formules valides.
2 L’ensemble des règles du système doit être complet,
c’est-à-dire qu’il doit suffire à prouver toute formule valide.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 132/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Système de preuve (3).


Un système de preuve doit satisfaire au moins une des deux
propriétés suivantes :
1 Ses règles doivent être correctes, c’est-à-dire que la
conclusion doit toujours être une conséquence logique de
l’ensemble des prémisses.
Exemple — la "règle" suivante n’est pas correcte.
A⇒B B
A

Si l’ensemble des règles du systèmes de preuve est correct, il


ne permettra de prouver que des formules valides.
2 L’ensemble des règles du système doit être complet,
c’est-à-dire qu’il doit suffire à prouver toute formule valide.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 132/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Système de preuve (3).


Un système de preuve doit satisfaire au moins une des deux
propriétés suivantes :
1 Ses règles doivent être correctes, c’est-à-dire que la
conclusion doit toujours être une conséquence logique de
l’ensemble des prémisses.
Exemple — la "règle" suivante n’est pas correcte.
A⇒B B
A

Si l’ensemble des règles du systèmes de preuve est correct, il


ne permettra de prouver que des formules valides.
2 L’ensemble des règles du système doit être complet,
c’est-à-dire qu’il doit suffire à prouver toute formule valide.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 132/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Système formel pour le calcul propositionnel


La logique propositionnelle est une théorie : avec quelques axiomes et
règles, on peut déduire toutes les formules valides (les théorèmes).
Système formel pour le calcul propositionnel
On considère les FBF, avec un ensemble fini de variables
propositionnelles, on se restreint au système complet de connecteurs
{¬, ⇒} ; et 3 schémas d’axiomes et 2 règles de déduction :
1 SA1 : (A ⇒ (B ⇒ A)) ; (conséquence de l’hypothèse)
2 SA2 : ((A ⇒ (B ⇒ C)) ⇒ ((A ⇒ B) ⇒ (A ⇒ C))) ;
(autodistributivité)
3 SA3 : ((¬A ⇒ ¬B) ⇒ (B ⇒ A)). (contraposition partielle)

Règles de déduction :modus ponens et substitution uniforme :

A⇒B A
M odus ponens
B
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 133/260
Logique mathématique pour l’informatique
Chapitre 1. Logique Propositionnelle
Système formel, déduction et démonstration

Système formel pour le calcul propositionnel

Exemple de démonstration dans ce système formel


` (p ⇒ p) ?
1 Axiome SA1, avec A = p, B = q :
(p ⇒ (q ⇒ p))
2 Substitution uniforme de q par q ⇒ p :
(p ⇒ ((q ⇒ p) ⇒ p)) :
3 Axiome SA2 avec A = p, B = (q ⇒ p), et de C = p :
((p ⇒ ((q ⇒ p) ⇒ p)) ⇒ ((p ⇒ (q ⇒ p)) ⇒ (p ⇒ p)))
4 Modus Ponens sur les lignes (2) et (3) :
((p ⇒ (q ⇒ p)) ⇒ (p ⇒ p))
5 Modus Ponens sur les lignes (1) et (4) :
(p ⇒ p) (donc ` (p ⇒ q))

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 134/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats

Chapitre 2.

Logique prédicative

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 135/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Plan : Chapitre 2. Logique des prédicats

Introduction
Syntaxe
Sémantique du calcul des prédicats
Formes prénexes et formes normales
Formes de Skolem, formes clausales
Aspects déductifs et Herbrand

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 136/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (1)

La logique des propositions ne permet la formalisation d’une petite


partie de l’ensemble des raisonnements. Considérons par exemple le
raisonnement suivant :

Tout homme est mortel ;


Socrate est un homme
donc Socrate est mortel.

Ce raisonnement est valide mais il échappe à la logique


propositionnelle.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 137/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (1)

La logique des propositions ne permet la formalisation d’une petite


partie de l’ensemble des raisonnements. Considérons par exemple le
raisonnement suivant :

Tout homme est mortel ;


Socrate est un homme
donc Socrate est mortel.

Ce raisonnement est valide mais il échappe à la logique


propositionnelle.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 137/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (1)

La logique des propositions ne permet la formalisation d’une petite


partie de l’ensemble des raisonnements. Considérons par exemple le
raisonnement suivant :

Tout homme est mortel ;


Socrate est un homme
donc Socrate est mortel.

Ce raisonnement est valide mais il échappe à la logique


propositionnelle.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 137/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (1)

La logique des propositions ne permet la formalisation d’une petite


partie de l’ensemble des raisonnements. Considérons par exemple le
raisonnement suivant :

Tout homme est mortel ;


Socrate est un homme
donc Socrate est mortel.

Ce raisonnement est valide mais il échappe à la logique


propositionnelle.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 137/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (1)

La logique des propositions ne permet la formalisation d’une petite


partie de l’ensemble des raisonnements. Considérons par exemple le
raisonnement suivant :

Tout homme est mortel ;


Socrate est un homme
donc Socrate est mortel.

Ce raisonnement est valide mais il échappe à la logique


propositionnelle.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 137/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (2)

Le raisonnement précédent comporte trois propositions :


p : Tout homme est mortel
q : Socrate est un homme
r : Socrate est mortel
La ponctuation ’ ;’ ainsi que le connecteur ’donc’ permettent
d’écrire la formule :

(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 138/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (2)

Le raisonnement précédent comporte trois propositions :


p : Tout homme est mortel
q : Socrate est un homme
r : Socrate est mortel
La ponctuation ’ ;’ ainsi que le connecteur ’donc’ permettent
d’écrire la formule :

(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 138/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (2)

Le raisonnement précédent comporte trois propositions :


p : Tout homme est mortel
q : Socrate est un homme
r : Socrate est mortel
La ponctuation ’ ;’ ainsi que le connecteur ’donc’ permettent
d’écrire la formule :

(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 138/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (2)

Le raisonnement précédent comporte trois propositions :


p : Tout homme est mortel
q : Socrate est un homme
r : Socrate est mortel
La ponctuation ’ ;’ ainsi que le connecteur ’donc’ permettent
d’écrire la formule :

(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 138/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (2)

Le raisonnement précédent comporte trois propositions :


p : Tout homme est mortel
q : Socrate est un homme
r : Socrate est mortel
La ponctuation ’ ;’ ainsi que le connecteur ’donc’ permettent
d’écrire la formule :

(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 138/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (2)

Le raisonnement précédent comporte trois propositions :


p : Tout homme est mortel
q : Socrate est un homme
r : Socrate est mortel
La ponctuation ’ ;’ ainsi que le connecteur ’donc’ permettent
d’écrire la formule :

(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 138/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (2)

Le raisonnement précédent comporte trois propositions :


p : Tout homme est mortel
q : Socrate est un homme
r : Socrate est mortel
La ponctuation ’ ;’ ainsi que le connecteur ’donc’ permettent
d’écrire la formule :

(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 138/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (2)

Le raisonnement précédent comporte trois propositions :


p : Tout homme est mortel
q : Socrate est un homme
r : Socrate est mortel
La ponctuation ’ ;’ ainsi que le connecteur ’donc’ permettent
d’écrire la formule :

(p ∧ q) ⇒ r.
Cette formule n’est pas valide : la logique propositionnelle ne
permet donc pas de déclarer correct le raisonnement.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 138/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (3)

Or, la première phrase, représentée par p contient une


implication :
Si quelque chose est un homme,
alors quelque chose est mortel.
Cela fait penser à une implication du type (A ⇒ B).
Ou encore, cela pourrait être (x ⇒ h) ⇒ (x ⇒ m)
Quelque chose établit un lien entre ligne 1 et 2. Idem pr
Socrate entre lignes 2 et 3.
Mais quelque chose représente un individu indéfini de
l’univers, alors que Socrate désigne un membre précis de ce
même univers.
Du point sémantique cela ne marche pas non plus :
uniquement V ou F pour quelque chose et Socrate.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 139/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (3)

Or, la première phrase, représentée par p contient une


implication :
Si quelque chose est un homme,
alors quelque chose est mortel.
Cela fait penser à une implication du type (A ⇒ B).
Ou encore, cela pourrait être (x ⇒ h) ⇒ (x ⇒ m)
Quelque chose établit un lien entre ligne 1 et 2. Idem pr
Socrate entre lignes 2 et 3.
Mais quelque chose représente un individu indéfini de
l’univers, alors que Socrate désigne un membre précis de ce
même univers.
Du point sémantique cela ne marche pas non plus :
uniquement V ou F pour quelque chose et Socrate.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 139/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (3)

Or, la première phrase, représentée par p contient une


implication :
Si quelque chose est un homme,
alors quelque chose est mortel.
Cela fait penser à une implication du type (A ⇒ B).
Ou encore, cela pourrait être (x ⇒ h) ⇒ (x ⇒ m)
Quelque chose établit un lien entre ligne 1 et 2. Idem pr
Socrate entre lignes 2 et 3.
Mais quelque chose représente un individu indéfini de
l’univers, alors que Socrate désigne un membre précis de ce
même univers.
Du point sémantique cela ne marche pas non plus :
uniquement V ou F pour quelque chose et Socrate.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 139/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (3)

Or, la première phrase, représentée par p contient une


implication :
Si quelque chose est un homme,
alors quelque chose est mortel.
Cela fait penser à une implication du type (A ⇒ B).
Ou encore, cela pourrait être (x ⇒ h) ⇒ (x ⇒ m)
Quelque chose établit un lien entre ligne 1 et 2. Idem pr
Socrate entre lignes 2 et 3.
Mais quelque chose représente un individu indéfini de
l’univers, alors que Socrate désigne un membre précis de ce
même univers.
Du point sémantique cela ne marche pas non plus :
uniquement V ou F pour quelque chose et Socrate.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 139/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (3)

Or, la première phrase, représentée par p contient une


implication :
Si quelque chose est un homme,
alors quelque chose est mortel.
Cela fait penser à une implication du type (A ⇒ B).
Ou encore, cela pourrait être (x ⇒ h) ⇒ (x ⇒ m)
Quelque chose établit un lien entre ligne 1 et 2. Idem pr
Socrate entre lignes 2 et 3.
Mais quelque chose représente un individu indéfini de
l’univers, alors que Socrate désigne un membre précis de ce
même univers.
Du point sémantique cela ne marche pas non plus :
uniquement V ou F pour quelque chose et Socrate.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 139/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (3)

Or, la première phrase, représentée par p contient une


implication :
Si quelque chose est un homme,
alors quelque chose est mortel.
Cela fait penser à une implication du type (A ⇒ B).
Ou encore, cela pourrait être (x ⇒ h) ⇒ (x ⇒ m)
Quelque chose établit un lien entre ligne 1 et 2. Idem pr
Socrate entre lignes 2 et 3.
Mais quelque chose représente un individu indéfini de
l’univers, alors que Socrate désigne un membre précis de ce
même univers.
Du point sémantique cela ne marche pas non plus :
uniquement V ou F pour quelque chose et Socrate.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 139/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (4)

Par analogie avec les mathématiques, on dira que “quelque


chose” est une variable (que nous baptiserons x) alors que
“Socrate” est une constante.
L’exemple devient :
Pour tout x, si x est un homme, alors x est mortel ;
Socrate est un homme ;
(donc) Socrate est mortel.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 140/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (4)

Par analogie avec les mathématiques, on dira que “quelque


chose” est une variable (que nous baptiserons x) alors que
“Socrate” est une constante.
L’exemple devient :
Pour tout x, si x est un homme, alors x est mortel ;
Socrate est un homme ;
(donc) Socrate est mortel.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 140/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (5)

Dans la nouvelle forme de notre exemple, en plus des


connecteurs habituels (“si...alors”, ou “donc”, qui représentent
l’implication), on a :
“pour tout” : quantification ;
“x” : variable ;
“Socrate” : constante ;
“est un homme”, “est mortel” : constantes prédicatives.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 141/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

Introduction (6)

La négation de : “pour tout x, A (est vrai)” est : “il existe (au


moins un) x, ¬A.
Le quantificateur “il existe” devient indispensable, dès que l’on
utilise “pour tout”.
On représentera le quantificateur “pour tout” par ∀ et “il
existe” par ∃ ;
Nous pouvons à présent formaliser les hypothèses et la
conclusion de notre raisonnement en représentant x est un
homme par homme(x) et y est mortel par mortel(y).
On obtient le raisonnement semi-formel suivant :
∀x(homme(x) ⇒ mortel(x)) et homme(Socrate)
donc mortel(Socrate)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 142/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Introduction

But du calcul des prédicats

Comme le calcul des propositions, le calcul des prédicats se


donne pour but de définir quels sont les énoncés qui sont
valides et quels sont ceux qui ne le sont pas.
Comme pour le calcul des propositions, il existe deux façons
d’aborder cette question, l’aspect sémantique et l’aspect
syntaxique. Un théorème de complétude montre l’équivalence
entre ces deux aspects.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 143/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Plan : 2 - Chapitre 2. Logique des prédicats

Introduction
Syntaxe
Sémantique du calcul des prédicats
Formes prénexes et formes normales
Formes de Skolem, formes clausales
Aspects déductifs et Herbrand

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 144/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Syntaxe du calcul des prédicats (1)

Les connecteurs du calcul des propositions : ¬, ∨, ∧, ⇒, ⇔


Les quantificateurs : ∃, ∀
Des variables : x, y, x1 , x2 , ..., y1 , y2 , ...
Des symboles de fonctions (foncteurs) : f ,g,...
Des relations ou prédicats : P , Q, R, rel, pred, mortel,
homme, ...

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 145/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Syntaxe du calcul des prédicats (2)

Un terme est une variable ou une fonction.


Les termes ont pour but de représenter les objets sur lesquels
vont s’appliquer des prédicats.
Un terme est clos s’il ne contient pas de nom de variable.
Une fonction est la juxtaposition d’un symbole de fonction et
d’un nombre adéquat de termes.
f (t1 , ..., tn ) : fonction f d’arité n ;
g : fonction g d’arité 0 (plutôt que g()) = constante.
Un prédicat est la juxtaposition d’un symbole de prédicat et
d’un nombre adéquat de termes ;
P (t1 , ..., tm ) : prédicat P d’arité m ;
Q : prédicat Q d’arité 0 (plutôt que Q()).
Un atome est un prédicat ou une égalité, c’est-à-dire une
expression du type (s = t), où s et t sont des termes.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 146/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Formules bien formées (1)

1 Un atome est une formule ;


2 Si X et Y sont des formules, alors
, (X), (¬X), (X ∧ Y ), (X ∨ Y ), (X ⇒ Y ), et (X ⇔ Y ) sont
des formules ;
3 Si X est une formule et v une variable, alors ∀v(X) et ∃v(X)
sont des formules.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 147/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Formules bien formées (2)

Il est possible, ensuite de supprimer quelques parenthèse inutiles,


notamment :
Supprimer les parenthèses entourant les variables ;
Tenir compte de la priorité des connecteurs
ordre décroissant standard : ¬, ∃, ∀, ∧, ∨, ⇒, ⇔ ;
Considérer qu’un opérateur unaire l’« emporte » toujours sur
un opérateur binaire.

Exemples
(¬(p)) ∧ (q) devient ¬p ∧ q ;
((¬(p)) ∧ (q)) ⇒ (r) devient ¬p ∧ q ⇒ r ;
Par contre, (¬(p)) ∧ ((q) ⇒ (r)) devient ¬p ∧ (q ⇒ r).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 148/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : formules bien formées ?


Soit le langage L = {P, R, f, g, c} où les symboles de prédicats
sont P unaire, R binaire, et les symboles de fonction sont f unaire,
g binaire, et c symbole de constante. Parmi les expressions
suivantes, lesquelles sont des formules bien formées de L (donner
son arbre dans ce cas) ?

a. ∀(x, y) h. ∀xR(x, x)
b. α(x, y) i. ∀x∃yR(x, x)
c. g(x, y) j. ∃y(y = c ∧ P (y))
d. R(g(x, y)) k. ∃x(P (f (x)) ∧ ∀yR(x, y))
e. P (R(x, y)) l. (∃xP (f (x)) ∧ ∀yR(x, y))
f. x = g(x, y) m. ∀x∀xP (g(f (x), x))
g. R(f (x), g(y, c)) n. ∀x(P (x) ⇒ ∃yR(x, y))

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 149/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : formules bien formées ? - Correction (1)

a. ∀(x, y) : Non, car ∀ doit toujours être suivi d’une variable.


b. α(x, y) : Non, car α n’est pas un symbole du langage.
c. g(x, y) : Non, car g(x, y) n’est pas une formule, c’est un terme.
d. R(g(x, y)) : Non, car R est un prédicat binaire.
e. P (R(x, y)) : Non, car R(x, y) n’est pas un terme.
f. x = g(x, y) : Oui, car x et g(x, y) sont des termes. Son arbre a
un seul nœud car c’est un atome.
g. R(f (x), g(y, c)) : Oui, car f (x) et g(y, c) sont des termes, et R
est binaire. Idem que f. pour l’arbre syntaxique.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 149/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : formules bien formées ? - Correction (1)

a. ∀(x, y) : Non, car ∀ doit toujours être suivi d’une variable.


b. α(x, y) : Non, car α n’est pas un symbole du langage.
c. g(x, y) : Non, car g(x, y) n’est pas une formule, c’est un terme.
d. R(g(x, y)) : Non, car R est un prédicat binaire.
e. P (R(x, y)) : Non, car R(x, y) n’est pas un terme.
f. x = g(x, y) : Oui, car x et g(x, y) sont des termes. Son arbre a
un seul nœud car c’est un atome.
g. R(f (x), g(y, c)) : Oui, car f (x) et g(y, c) sont des termes, et R
est binaire. Idem que f. pour l’arbre syntaxique.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 149/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : formules bien formées ? - Correction (1)

a. ∀(x, y) : Non, car ∀ doit toujours être suivi d’une variable.


b. α(x, y) : Non, car α n’est pas un symbole du langage.
c. g(x, y) : Non, car g(x, y) n’est pas une formule, c’est un terme.
d. R(g(x, y)) : Non, car R est un prédicat binaire.
e. P (R(x, y)) : Non, car R(x, y) n’est pas un terme.
f. x = g(x, y) : Oui, car x et g(x, y) sont des termes. Son arbre a
un seul nœud car c’est un atome.
g. R(f (x), g(y, c)) : Oui, car f (x) et g(y, c) sont des termes, et R
est binaire. Idem que f. pour l’arbre syntaxique.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 149/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : formules bien formées ? - Correction (1)

a. ∀(x, y) : Non, car ∀ doit toujours être suivi d’une variable.


b. α(x, y) : Non, car α n’est pas un symbole du langage.
c. g(x, y) : Non, car g(x, y) n’est pas une formule, c’est un terme.
d. R(g(x, y)) : Non, car R est un prédicat binaire.
e. P (R(x, y)) : Non, car R(x, y) n’est pas un terme.
f. x = g(x, y) : Oui, car x et g(x, y) sont des termes. Son arbre a
un seul nœud car c’est un atome.
g. R(f (x), g(y, c)) : Oui, car f (x) et g(y, c) sont des termes, et R
est binaire. Idem que f. pour l’arbre syntaxique.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 149/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : formules bien formées ? - Correction (1)

a. ∀(x, y) : Non, car ∀ doit toujours être suivi d’une variable.


b. α(x, y) : Non, car α n’est pas un symbole du langage.
c. g(x, y) : Non, car g(x, y) n’est pas une formule, c’est un terme.
d. R(g(x, y)) : Non, car R est un prédicat binaire.
e. P (R(x, y)) : Non, car R(x, y) n’est pas un terme.
f. x = g(x, y) : Oui, car x et g(x, y) sont des termes. Son arbre a
un seul nœud car c’est un atome.
g. R(f (x), g(y, c)) : Oui, car f (x) et g(y, c) sont des termes, et R
est binaire. Idem que f. pour l’arbre syntaxique.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 149/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : formules bien formées ? - Correction (1)

a. ∀(x, y) : Non, car ∀ doit toujours être suivi d’une variable.


b. α(x, y) : Non, car α n’est pas un symbole du langage.
c. g(x, y) : Non, car g(x, y) n’est pas une formule, c’est un terme.
d. R(g(x, y)) : Non, car R est un prédicat binaire.
e. P (R(x, y)) : Non, car R(x, y) n’est pas un terme.
f. x = g(x, y) : Oui, car x et g(x, y) sont des termes. Son arbre a
un seul nœud car c’est un atome.
g. R(f (x), g(y, c)) : Oui, car f (x) et g(y, c) sont des termes, et R
est binaire. Idem que f. pour l’arbre syntaxique.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 149/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : formules bien formées ? - Correction (1)

a. ∀(x, y) : Non, car ∀ doit toujours être suivi d’une variable.


b. α(x, y) : Non, car α n’est pas un symbole du langage.
c. g(x, y) : Non, car g(x, y) n’est pas une formule, c’est un terme.
d. R(g(x, y)) : Non, car R est un prédicat binaire.
e. P (R(x, y)) : Non, car R(x, y) n’est pas un terme.
f. x = g(x, y) : Oui, car x et g(x, y) sont des termes. Son arbre a
un seul nœud car c’est un atome.
g. R(f (x), g(y, c)) : Oui, car f (x) et g(y, c) sont des termes, et R
est binaire. Idem que f. pour l’arbre syntaxique.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 149/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : formules bien formées ? - Correction (2)

h. ∀xR(x, x) : Oui. l. (∃xP (f (x)) ∧ ∀yR(x, y)) :


i. ∀x∃yR(x, x) : Oui. Oui.
j. ∃y(y = c ∧ P (y)) : Oui. m. ∀x∀xP (g(f (x), x)) : Oui.
k. ∃x(P (f (x)) ∧ ∀yR(x, y)) : n. ∀x(P (x) ⇒ ∃yR(x, y)) :
Oui. Oui.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 149/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Occurrences de variables

Une occurrence d’une variable x dans une formule F est un


endroit où x apparaît dans F sans être immédiatement
précédée par ∀ ou ∃

Exemple
Dans la formule suivante, les occurrences de x et y sont en
couleurs : ∀x(P (x) ⇒ ∃yR(x, y))

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 150/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Occurrences libres, variables libres ou liées

Une occurrence libre de x dans F est définie :


Si F est un atome : toutes les occurrences de x sont libres ;
Si F = ¬(G) : les occurrences libres de x sont celles de G ;
Si F = (G)  (H), les occurrences libres de x sont celles de G
et celles de H (avec G et H des formules et
 ∈ {¬, ∧, ∨, ⇒, ⇔}) ;
Si F = ∀y(G) ou F = ∃y(H) avec x distinct de y, les
occurrences libres de x sont celles de G et celles de H ;
Si F = ∀x(G) ou F = ∃x(H), aucune occurrence de x dans F
n’est libre.
Une variable est dite libre dans une formule F si elle a au
moins une occurrence libre (sinon on dit qu’elle est liée) ;

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 151/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Prédicats, formules closes, variables libres ou liées (1)

La distinction entre variable libre et variable liée est


importante.
Une variable liée ne possède pas d’identité propre (“variable
muette”) et peut être remplacée par n’importe quel autre nom
de variable qui n’apparaît pas dans la formule.
Exemple : ∃x(x < y) est identique à :
∃z(z < y) ;
mais pas à ∃x(x < z) ;
et encore moins à ∃y(y < y).
Une formule n’ayant pas de variable libre (toutes ses variables
sont liées) est dite close (on parle aussi d’«énoncé» pour
formule close).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 152/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Prédicats, formules closes, variables libres ou liées (2)


Prédicat : définition
Un prédicat est une formule qui contient une ou plusieurs variables libres.

Exemple de prédicat
(x < y) ou encore Inferieur (x, y) avec deux variables libres.

Prédicat : autre définition


Un prédicat est une formule qui dépend d’une ou plusieurs variables libres.

Exemple de prédicat
∀x(x < z) dépend de la variable libre z.

Exemple de formule close


∀x∃y(x < y) n’est pas un prédicat car aucune variable n’y est libre.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 153/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Prédicats, formules closes, variables libres ou liées (2)


Prédicat : définition
Un prédicat est une formule qui contient une ou plusieurs variables libres.

Exemple de prédicat
(x < y) ou encore Inferieur (x, y) avec deux variables libres.

Prédicat : autre définition


Un prédicat est une formule qui dépend d’une ou plusieurs variables libres.

Exemple de prédicat
∀x(x < z) dépend de la variable libre z.

Exemple de formule close


∀x∃y(x < y) n’est pas un prédicat car aucune variable n’y est libre.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 153/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Prédicats, formules closes, variables libres ou liées (2)


Prédicat : définition
Un prédicat est une formule qui contient une ou plusieurs variables libres.

Exemple de prédicat
(x < y) ou encore Inferieur (x, y) avec deux variables libres.

Prédicat : autre définition


Un prédicat est une formule qui dépend d’une ou plusieurs variables libres.

Exemple de prédicat
∀x(x < z) dépend de la variable libre z.

Exemple de formule close


∀x∃y(x < y) n’est pas un prédicat car aucune variable n’y est libre.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 153/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : atomes, variables libres ou liées ?

f. x = g(x, y)
g. R(f (x), g(y, c))
h. ∀xR(x, x)
i. ∀x∃yR(x, x)
j. ∃y(y = c ∧ P (y))
k. ∃x(P (f (x)) ∧ ∀yR(x, y))
l. (∃xP (f (x)) ∧ ∀yR(x, y))
m. ∀x∀xP (g(f (x), x))
n. ∀x(P (x) ⇒ ∃yR(x, y))

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 154/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : atomes, variables libres ou liées ? - Correction


f. x = g(x, y)

g. R(f (x), g(y, c))


h. ∀xR(x, x)

i. ∀x∃yR(x, x)
j. ∃y(y = c ∧ P (y))
k. ∃x(P (f (x)) ∧ ∀yR(x, y))
l. (∃xP (f (x)) ∧ ∀yR(x, y))

m. ∀x∀xP (g(f (x), x))


n. ∀x(P (x) ⇒ ∃yR(x, y))
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 154/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : atomes, variables libres ou liées ? - Correction


f. x = g(x, y) : atome, donc toutes les occurrences de variables
sont libres, donc les variables x et y sont libres. Cette formule
n’est donc pas un énoncé.
g. R(f (x), g(y, c))
h. ∀xR(x, x)

i. ∀x∃yR(x, x)
j. ∃y(y = c ∧ P (y))
k. ∃x(P (f (x)) ∧ ∀yR(x, y))
l. (∃xP (f (x)) ∧ ∀yR(x, y))

m. ∀x∀xP (g(f (x), x))


n. ∀x(P (x) ⇒ ∃yR(x, y))
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 154/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : atomes, variables libres ou liées ? - Correction


f. x = g(x, y) : atome, donc toutes les occurrences de variables
sont libres, donc les variables x et y sont libres. Cette formule
n’est donc pas un énoncé.
g. R(f (x), g(y, c)) : atome (idem).
h. ∀xR(x, x)

i. ∀x∃yR(x, x)
j. ∃y(y = c ∧ P (y))
k. ∃x(P (f (x)) ∧ ∀yR(x, y))
l. (∃xP (f (x)) ∧ ∀yR(x, y))

m. ∀x∀xP (g(f (x), x))


n. ∀x(P (x) ⇒ ∃yR(x, y))
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 154/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : atomes, variables libres ou liées ? - Correction


f. x = g(x, y) : atome, donc toutes les occurrences de variables
sont libres, donc les variables x et y sont libres. Cette formule
n’est donc pas un énoncé.
g. R(f (x), g(y, c)) : atome (idem).
h. ∀xR(x, x) pas un atome : toutes les occurrences de variables
sont liées. C’est un énoncé.
i. ∀x∃yR(x, x)
j. ∃y(y = c ∧ P (y))
k. ∃x(P (f (x)) ∧ ∀yR(x, y))
l. (∃xP (f (x)) ∧ ∀yR(x, y))

m. ∀x∀xP (g(f (x), x))


n. ∀x(P (x) ⇒ ∃yR(x, y))
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 154/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : atomes, variables libres ou liées ? - Correction


f. x = g(x, y) : atome, donc toutes les occurrences de variables
sont libres, donc les variables x et y sont libres. Cette formule
n’est donc pas un énoncé.
g. R(f (x), g(y, c)) : atome (idem).
h. ∀xR(x, x) pas un atome : toutes les occurrences de variables
sont liées. C’est un énoncé.
i. ∀x∃yR(x, x) : idem ci-dessus.
j. ∃y(y = c ∧ P (y))
k. ∃x(P (f (x)) ∧ ∀yR(x, y))
l. (∃xP (f (x)) ∧ ∀yR(x, y))

m. ∀x∀xP (g(f (x), x))


n. ∀x(P (x) ⇒ ∃yR(x, y))
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 154/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : atomes, variables libres ou liées ? - Correction


f. x = g(x, y) : atome, donc toutes les occurrences de variables
sont libres, donc les variables x et y sont libres. Cette formule
n’est donc pas un énoncé.
g. R(f (x), g(y, c)) : atome (idem).
h. ∀xR(x, x) pas un atome : toutes les occurrences de variables
sont liées. C’est un énoncé.
i. ∀x∃yR(x, x) : idem ci-dessus.
j. ∃y(y = c ∧ P (y)) : idem.
k. ∃x(P (f (x)) ∧ ∀yR(x, y))
l. (∃xP (f (x)) ∧ ∀yR(x, y))

m. ∀x∀xP (g(f (x), x))


n. ∀x(P (x) ⇒ ∃yR(x, y))
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 154/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : atomes, variables libres ou liées ? - Correction


f. x = g(x, y) : atome, donc toutes les occurrences de variables
sont libres, donc les variables x et y sont libres. Cette formule
n’est donc pas un énoncé.
g. R(f (x), g(y, c)) : atome (idem).
h. ∀xR(x, x) pas un atome : toutes les occurrences de variables
sont liées. C’est un énoncé.
i. ∀x∃yR(x, x) : idem ci-dessus.
j. ∃y(y = c ∧ P (y)) : idem.
k. ∃x(P (f (x)) ∧ ∀yR(x, y)) : idem.
l. (∃xP (f (x)) ∧ ∀yR(x, y))

m. ∀x∀xP (g(f (x), x))


n. ∀x(P (x) ⇒ ∃yR(x, y))
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 154/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : atomes, variables libres ou liées ? - Correction


f. x = g(x, y) : atome, donc toutes les occurrences de variables
sont libres, donc les variables x et y sont libres. Cette formule
n’est donc pas un énoncé.
g. R(f (x), g(y, c)) : atome (idem).
h. ∀xR(x, x) pas un atome : toutes les occurrences de variables
sont liées. C’est un énoncé.
i. ∀x∃yR(x, x) : idem ci-dessus.
j. ∃y(y = c ∧ P (y)) : idem.
k. ∃x(P (f (x)) ∧ ∀yR(x, y)) : idem.
l. (∃xP (f (x)) ∧ ∀yR(x, y)) : la seconde occurrence de x dans l.
est libre, la variable x est donc libre. Cette formule n’est donc
pas un énoncé.
m. ∀x∀xP (g(f (x), x))
n. ∀x(P (x) ⇒ ∃yR(x, y))
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 154/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : atomes, variables libres ou liées ? - Correction


f. x = g(x, y) : atome, donc toutes les occurrences de variables
sont libres, donc les variables x et y sont libres. Cette formule
n’est donc pas un énoncé.
g. R(f (x), g(y, c)) : atome (idem).
h. ∀xR(x, x) pas un atome : toutes les occurrences de variables
sont liées. C’est un énoncé.
i. ∀x∃yR(x, x) : idem ci-dessus.
j. ∃y(y = c ∧ P (y)) : idem.
k. ∃x(P (f (x)) ∧ ∀yR(x, y)) : idem.
l. (∃xP (f (x)) ∧ ∀yR(x, y)) : la seconde occurrence de x dans l.
est libre, la variable x est donc libre. Cette formule n’est donc
pas un énoncé.
m. ∀x∀xP (g(f (x), x)) : idem les précédentes (hormis l.).
n. ∀x(P (x) ⇒ ∃yR(x, y))
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 154/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Exercice : atomes, variables libres ou liées ? - Correction


f. x = g(x, y) : atome, donc toutes les occurrences de variables
sont libres, donc les variables x et y sont libres. Cette formule
n’est donc pas un énoncé.
g. R(f (x), g(y, c)) : atome (idem).
h. ∀xR(x, x) pas un atome : toutes les occurrences de variables
sont liées. C’est un énoncé.
i. ∀x∃yR(x, x) : idem ci-dessus.
j. ∃y(y = c ∧ P (y)) : idem.
k. ∃x(P (f (x)) ∧ ∀yR(x, y)) : idem.
l. (∃xP (f (x)) ∧ ∀yR(x, y)) : la seconde occurrence de x dans l.
est libre, la variable x est donc libre. Cette formule n’est donc
pas un énoncé.
m. ∀x∀xP (g(f (x), x)) : idem les précédentes (hormis l.).
n. ∀x(P (x) ⇒ ∃yR(x, y)) : idem ci-dessus.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 154/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Définitions syntaxiques et modélisation : exemple 1

On se propose de définir un langage logique L de la façon suivante.


Si on se donne pour :
constantes : les deux symboles 0 et 1,
symboles de fonctions binaires + et ×,
symboles de prédicats binaires les symboles = et <,
alors le langage défini peut être interprété comme étant celui de
l’arithmétique. En effet, si x et y désignent des variables, alors
x + 1 est un terme,
0 + 1 + 1 est un terme clos,
x < y + 1 est une formule, et
0 + 1 + 1 < 0 + 1 + 1 + 1 est une formule close (ou énoncé).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 155/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice

Modéliser les expressions suivantes :


Tous les singes sont malicieux :
Aucun singe n’est soldat :
Tous les lions sont féroces :
Quelques lions ne boivent pas de café :

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux :

Aucun singe n’est soldat :

Tous les lions sont féroces :

Quelques lions ne boivent pas de café :

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux : ∀x (Singe(x) ⇒ M alicieux(x))

Aucun singe n’est soldat :

Tous les lions sont féroces :

Quelques lions ne boivent pas de café :

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux : ∀x (Singe(x) ⇒ M alicieux(x))

Aucun singe n’est soldat : ¬∃x (Singe(x) ∧ Soldat(x))

Tous les lions sont féroces :

Quelques lions ne boivent pas de café :

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux : ∀x (Singe(x) ⇒ M alicieux(x))

Aucun singe n’est soldat : ¬∃x (Singe(x) ∧ Soldat(x))⇔


(∀x ¬(Singe(x) ∧ Soldat(x)))

Tous les lions sont féroces :

Quelques lions ne boivent pas de café :

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux : ∀x (Singe(x) ⇒ M alicieux(x))

Aucun singe n’est soldat : ¬∃x (Singe(x) ∧ Soldat(x))⇔


(∀x ¬(Singe(x) ∧ Soldat(x)))⇔
(∀x (¬Singe(x) ∨ ¬Soldat(x)))
Tous les lions sont féroces :

Quelques lions ne boivent pas de café :

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux : ∀x (Singe(x) ⇒ M alicieux(x))

Aucun singe n’est soldat : ¬∃x (Singe(x) ∧ Soldat(x))⇔


(∀x ¬(Singe(x) ∧ Soldat(x)))⇔
(∀x (¬Singe(x) ∨ ¬Soldat(x)))⇔ (∀x (Singe(x) ⇒ ¬Soldat(x)))
Tous les lions sont féroces :

Quelques lions ne boivent pas de café :

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux : ∀x (Singe(x) ⇒ M alicieux(x))⇔
¬∃x (Singe(x) ∧ ¬M alicieux(x))
Aucun singe n’est soldat : ¬∃x (Singe(x) ∧ Soldat(x))⇔
(∀x ¬(Singe(x) ∧ Soldat(x)))⇔
(∀x (¬Singe(x) ∨ ¬Soldat(x)))⇔ (∀x (Singe(x) ⇒ ¬Soldat(x)))
Tous les lions sont féroces :

Quelques lions ne boivent pas de café :

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux : ∀x (Singe(x) ⇒ M alicieux(x))⇔
¬∃x (Singe(x) ∧ ¬M alicieux(x))
Aucun singe n’est soldat : ¬∃x (Singe(x) ∧ Soldat(x))⇔
(∀x ¬(Singe(x) ∧ Soldat(x)))⇔
(∀x (¬Singe(x) ∨ ¬Soldat(x)))⇔ (∀x (Singe(x) ⇒ ¬Soldat(x)))
Tous les lions sont féroces : (∀x (Lion(x) ⇒ F eroce(x)))

Quelques lions ne boivent pas de café :

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux : ∀x (Singe(x) ⇒ M alicieux(x))⇔
¬∃x (Singe(x) ∧ ¬M alicieux(x))
Aucun singe n’est soldat : ¬∃x (Singe(x) ∧ Soldat(x))⇔
(∀x ¬(Singe(x) ∧ Soldat(x)))⇔
(∀x (¬Singe(x) ∨ ¬Soldat(x)))⇔ (∀x (Singe(x) ⇒ ¬Soldat(x)))
Tous les lions sont féroces : (∀x (Lion(x) ⇒ F eroce(x)))
⇔ (¬∃x (Lion(x) ∧ ¬F eroce(x)))
Quelques lions ne boivent pas de café :

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux : ∀x (Singe(x) ⇒ M alicieux(x))⇔
¬∃x (Singe(x) ∧ ¬M alicieux(x))
Aucun singe n’est soldat : ¬∃x (Singe(x) ∧ Soldat(x))⇔
(∀x ¬(Singe(x) ∧ Soldat(x)))⇔
(∀x (¬Singe(x) ∨ ¬Soldat(x)))⇔ (∀x (Singe(x) ⇒ ¬Soldat(x)))
Tous les lions sont féroces : (∀x (Lion(x) ⇒ F eroce(x)))
⇔ (¬∃x (Lion(x) ∧ ¬F eroce(x)))
Quelques lions ne boivent pas de café : (∃x (Lion(x) ∧ ¬Caf e(x)))

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux : ∀x (Singe(x) ⇒ M alicieux(x))⇔
¬∃x (Singe(x) ∧ ¬M alicieux(x))
Aucun singe n’est soldat : ¬∃x (Singe(x) ∧ Soldat(x))⇔
(∀x ¬(Singe(x) ∧ Soldat(x)))⇔
(∀x (¬Singe(x) ∨ ¬Soldat(x)))⇔ (∀x (Singe(x) ⇒ ¬Soldat(x)))
Tous les lions sont féroces : (∀x (Lion(x) ⇒ F eroce(x)))
⇔ (¬∃x (Lion(x) ∧ ¬F eroce(x)))
Quelques lions ne boivent pas de café : (∃x (Lion(x) ∧ ¬Caf e(x)))
⇔ ((¬∀x ¬(Lion(x) ∧ ¬Caf e(x)))

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux : ∀x (Singe(x) ⇒ M alicieux(x))⇔
¬∃x (Singe(x) ∧ ¬M alicieux(x))
Aucun singe n’est soldat : ¬∃x (Singe(x) ∧ Soldat(x))⇔
(∀x ¬(Singe(x) ∧ Soldat(x)))⇔
(∀x (¬Singe(x) ∨ ¬Soldat(x)))⇔ (∀x (Singe(x) ⇒ ¬Soldat(x)))
Tous les lions sont féroces : (∀x (Lion(x) ⇒ F eroce(x)))
⇔ (¬∃x (Lion(x) ∧ ¬F eroce(x)))
Quelques lions ne boivent pas de café : (∃x (Lion(x) ∧ ¬Caf e(x)))
⇔ ((¬∀x ¬(Lion(x) ∧ ¬Caf e(x)))
⇔ ((¬∀x (¬Lion(x) ∨ Caf e(x)))

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Syntaxe

Modélisation – Exercice (correction)

Modéliser les expressions suivantes :


Tous les singes sont malicieux : ∀x (Singe(x) ⇒ M alicieux(x))⇔
¬∃x (Singe(x) ∧ ¬M alicieux(x))
Aucun singe n’est soldat : ¬∃x (Singe(x) ∧ Soldat(x))⇔
(∀x ¬(Singe(x) ∧ Soldat(x)))⇔
(∀x (¬Singe(x) ∨ ¬Soldat(x)))⇔ (∀x (Singe(x) ⇒ ¬Soldat(x)))
Tous les lions sont féroces : (∀x (Lion(x) ⇒ F eroce(x)))
⇔ (¬∃x (Lion(x) ∧ ¬F eroce(x)))
Quelques lions ne boivent pas de café : (∃x (Lion(x) ∧ ¬Caf e(x)))
⇔ ((¬∀x ¬(Lion(x) ∧ ¬Caf e(x)))
⇔ ((¬∀x (¬Lion(x) ∨ Caf e(x)))
⇔ ((¬∀x (Lion(x) ⇒ Caf e(x)))

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 156/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Plan : 2 - Chapitre 2. Logique des prédicats

Introduction
Syntaxe
Sémantique du calcul des prédicats
Formes prénexes et formes normales
Formes de Skolem, formes clausales
Aspects déductifs et Herbrand

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 157/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation dans le calcul des prédicats

Il faut distinguer deux catégories d’éléments syntaxiques :


Les termes : qui dénotent des éléments du domaine
d’interprétation ;
Les formules : qui décrivent des propriétés, des relations et des
fonctions sur ces éléments.
Exemple :
Le terme pere(x) désigne l’individu du domaine correspondant
à l’inidividu domaine dénoté par x ;
La formule ∀x∃yP arent(x, y) exprime que tout individu du
domaine a un parent.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 158/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation dans le calcul des prédicats

Les termes (variables, constantes, fonctions) n’ont pas de


valeur de vérité ;
Seuls les atomes (prédicats ou égalités) ont une valeur de
vérité dans la logique de prédicats.
Les formules du calcul des prédicats peuvent être
interprétées, i.e. recevoir une valeur de vérité.
Les composants du calcul des prédicats ne sont pas seulement
des sous-formules mais aussi des termes.
Il faut donc interpréter aussi les termes. Un terme désigne
intuitivement un objet.
Une interprétation devra donc spécifier un ensemble d’objets,
appelé domaine d’interprétation.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 159/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Domaine d’interprétation
Une interprétation I est un triplet (D, Ic , Iv ) ayant les propriétés
suivantes :
D : ensemble non vide ; c’est le domaine d’interprétation (ou
domaine du ‘discours’) ; appelé aussi domaine de base ;
Exemple : D1 = {Alice, Bob, Claude, Rex, ...}.
Ic : fonction qui associe à chaque symbole de fonction f
d’arité n, une application Ic (f ) de Dn dans D (y compris pour
les constantes) ;
Exemples de fonctions : pere/1, chien/1, age/1.
Exemples de constantes : a et b.
Ic associe également à chaque symbole de prédicat P d’arité
m, une application Ic (P ) de Dm dans {V; F} ;
Exemples de prédicats : EstU nHumain/1, P arent/2.
Iv : fonction qui associe à toute variable un élément de D.
Exemple : Iv (x) = Alice.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 160/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Domaine d’interprétation
Une interprétation I est un triplet (D, Ic , Iv ) ayant les propriétés
suivantes :
D : ensemble non vide ; c’est le domaine d’interprétation (ou
domaine du ‘discours’) ; appelé aussi domaine de base ;
Exemple : D1 = {Alice, Bob, Claude, Rex, ...}.
Ic : fonction qui associe à chaque symbole de fonction f
d’arité n, une application Ic (f ) de Dn dans D (y compris pour
les constantes) ;
Exemples de fonctions : pere/1, chien/1, age/1.
Exemples de constantes : a et b.
Ic associe également à chaque symbole de prédicat P d’arité
m, une application Ic (P ) de Dm dans {V; F} ;
Exemples de prédicats : EstU nHumain/1, P arent/2.
Iv : fonction qui associe à toute variable un élément de D.
Exemple : Iv (x) = Alice.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 160/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Domaine d’interprétation
Une interprétation I est un triplet (D, Ic , Iv ) ayant les propriétés
suivantes :
D : ensemble non vide ; c’est le domaine d’interprétation (ou
domaine du ‘discours’) ; appelé aussi domaine de base ;
Exemple : D1 = {Alice, Bob, Claude, Rex, ...}.
Ic : fonction qui associe à chaque symbole de fonction f
d’arité n, une application Ic (f ) de Dn dans D (y compris pour
les constantes) ;
Exemples de fonctions : pere/1, chien/1, age/1.
Exemples de constantes : a et b.
Ic associe également à chaque symbole de prédicat P d’arité
m, une application Ic (P ) de Dm dans {V; F} ;
Exemples de prédicats : EstU nHumain/1, P arent/2.
Iv : fonction qui associe à toute variable un élément de D.
Exemple : Iv (x) = Alice.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 160/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Domaine d’interprétation
Une interprétation I est un triplet (D, Ic , Iv ) ayant les propriétés
suivantes :
D : ensemble non vide ; c’est le domaine d’interprétation (ou
domaine du ‘discours’) ; appelé aussi domaine de base ;
Exemple : D1 = {Alice, Bob, Claude, Rex, ...}.
Ic : fonction qui associe à chaque symbole de fonction f
d’arité n, une application Ic (f ) de Dn dans D (y compris pour
les constantes) ;
Exemples de fonctions : pere/1, chien/1, age/1.
Exemples de constantes : a et b.
Ic associe également à chaque symbole de prédicat P d’arité
m, une application Ic (P ) de Dm dans {V; F} ;
Exemples de prédicats : EstU nHumain/1, P arent/2.
Iv : fonction qui associe à toute variable un élément de D.
Exemple : Iv (x) = Alice.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 160/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (1)

Pour une interprétation I = (D, Ic , Iv ), les règles d’interprétation


associant à toute formule A une valeur de vérité I(A) et à tout
terme t un élément I(t) de D sont :
def
Si x est une variable libre, alors I(x) ≡ Iv (x).
Voici 2 exemples d’interprétations de variables x et y :
Iv1 (x) = Alice; Iv1 (y) = Bob.
Iv2 (x) = Alice; Iv2 (y) = Alice.
def
Si c est une constante (fonction d’arité 0), alors I(c) ≡ Ic (c).
Exemple : soient les constantes a, b et
D1 = {Alice, Bob, Claude, Rex, ...}.
Voici 2 exemples d’interprétations de constantes pour D1 :
Ic1 (a) = Alice; Ic1 (b) = Bob.
Ic2 (a) = Alice; Ic2 (b) = Alice.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 161/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (1)

Pour une interprétation I = (D, Ic , Iv ), les règles d’interprétation


associant à toute formule A une valeur de vérité I(A) et à tout
terme t un élément I(t) de D sont :
def
Si x est une variable libre, alors I(x) ≡ Iv (x).
Voici 2 exemples d’interprétations de variables x et y :
Iv1 (x) = Alice; Iv1 (y) = Bob.
Iv2 (x) = Alice; Iv2 (y) = Alice.
def
Si c est une constante (fonction d’arité 0), alors I(c) ≡ Ic (c).
Exemple : soient les constantes a, b et
D1 = {Alice, Bob, Claude, Rex, ...}.
Voici 2 exemples d’interprétations de constantes pour D1 :
Ic1 (a) = Alice; Ic1 (b) = Bob.
Ic2 (a) = Alice; Ic2 (b) = Alice.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 161/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (2)

Si f est une fonction d’arité n (n > 0), alors


def
I(f (t1 , ..., tn )) ≡ (I(f ))(I(t1 ), ..., I(tn )).
Exemple d’interprétation de la fonction pere/1 :
Ic1 (pere(x)) retourne le père de l’individu représenté par x,
c’est-à-dire Iv1 (x).
Or Iv1 (x) = Alice, donc Ic1 (pere)(Iv1 (x)) = Bob (Bob est le
père d’Alice).
Exemple d’interprétation de la fonction chien/1 :
Ic1 (chien(x)) retourne le chien d’Alice.
Donc Ic1 (chien)(Iv1 (x)) = Rex (Rex est le chien d’Alice).
Exemple d’interprétation de age appliquées à D2 = D1 ∪ IN :
Ic1 (age(a)) retourne l’âge de l’individu représenté par a.
Ic1 (age(a)) = Ic1 (age)(Ic1 (a)).
Or Ic1 (a) = Alice
Donc Ic1 (age)(Ic1 (a)) = 15 (âge d’Alice = 15).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 162/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (2)

Si f est une fonction d’arité n (n > 0), alors


def
I(f (t1 , ..., tn )) ≡ (I(f ))(I(t1 ), ..., I(tn )).
Exemple d’interprétation de la fonction pere/1 :
Ic1 (pere(x)) retourne le père de l’individu représenté par x,
c’est-à-dire Iv1 (x).
Or Iv1 (x) = Alice, donc Ic1 (pere)(Iv1 (x)) = Bob (Bob est le
père d’Alice).
Exemple d’interprétation de la fonction chien/1 :
Ic1 (chien(x)) retourne le chien d’Alice.
Donc Ic1 (chien)(Iv1 (x)) = Rex (Rex est le chien d’Alice).
Exemple d’interprétation de age appliquées à D2 = D1 ∪ IN :
Ic1 (age(a)) retourne l’âge de l’individu représenté par a.
Ic1 (age(a)) = Ic1 (age)(Ic1 (a)).
Or Ic1 (a) = Alice
Donc Ic1 (age)(Ic1 (a)) = 15 (âge d’Alice = 15).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 162/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (2)

Si f est une fonction d’arité n (n > 0), alors


def
I(f (t1 , ..., tn )) ≡ (I(f ))(I(t1 ), ..., I(tn )).
Exemple d’interprétation de la fonction pere/1 :
Ic1 (pere(x)) retourne le père de l’individu représenté par x,
c’est-à-dire Iv1 (x).
Or Iv1 (x) = Alice, donc Ic1 (pere)(Iv1 (x)) = Bob (Bob est le
père d’Alice).
Exemple d’interprétation de la fonction chien/1 :
Ic1 (chien(x)) retourne le chien d’Alice.
Donc Ic1 (chien)(Iv1 (x)) = Rex (Rex est le chien d’Alice).
Exemple d’interprétation de age appliquées à D2 = D1 ∪ IN :
Ic1 (age(a)) retourne l’âge de l’individu représenté par a.
Ic1 (age(a)) = Ic1 (age)(Ic1 (a)).
Or Ic1 (a) = Alice
Donc Ic1 (age)(Ic1 (a)) = 15 (âge d’Alice = 15).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 162/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (2)

Si f est une fonction d’arité n (n > 0), alors


def
I(f (t1 , ..., tn )) ≡ (I(f ))(I(t1 ), ..., I(tn )).
Exemple d’interprétation de la fonction pere/1 :
Ic1 (pere(x)) retourne le père de l’individu représenté par x,
c’est-à-dire Iv1 (x).
Or Iv1 (x) = Alice, donc Ic1 (pere)(Iv1 (x)) = Bob (Bob est le
père d’Alice).
Exemple d’interprétation de la fonction chien/1 :
Ic1 (chien(x)) retourne le chien d’Alice.
Donc Ic1 (chien)(Iv1 (x)) = Rex (Rex est le chien d’Alice).
Exemple d’interprétation de age appliquées à D2 = D1 ∪ IN :
Ic1 (age(a)) retourne l’âge de l’individu représenté par a.
Ic1 (age(a)) = Ic1 (age)(Ic1 (a)).
Or Ic1 (a) = Alice
Donc Ic1 (age)(Ic1 (a)) = 15 (âge d’Alice = 15).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 162/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (3)

Si P est un prédicat d’arité m, alors


def
I(P (t1 , ..., tm )) ≡ (I(P ))(I(t1 ), ..., I(tm )).
Exemple d’interprétation du prédicat P arent/2 avec Ic1 :
Ic1 (P arent(y, x)) = V si Iv1 (y) est père ou mère de Iv1 (x).
Or Iv1 (y) = Bob et Iv1 (x) = Alice donc :
Ic1 (P arent(Bob, Alice)) = V
Exemple d’interprétation du prédicat EstU nHumain/1 avec
Ic1 :
Ic1 (EstU nHumain(x)) = V si Iv1 (x) est humain.
Or Iv1 (x) = Alice donc
Ic1 (EstU nHumain(x)) = Ic1 (EstU nHumain)Iv1 (x)) =
Ic1 (EstU nHumain)(Alice) = V.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 163/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (3)

Si P est un prédicat d’arité m, alors


def
I(P (t1 , ..., tm )) ≡ (I(P ))(I(t1 ), ..., I(tm )).
Exemple d’interprétation du prédicat P arent/2 avec Ic1 :
Ic1 (P arent(y, x)) = V si Iv1 (y) est père ou mère de Iv1 (x).
Or Iv1 (y) = Bob et Iv1 (x) = Alice donc :
Ic1 (P arent(Bob, Alice)) = V
Exemple d’interprétation du prédicat EstU nHumain/1 avec
Ic1 :
Ic1 (EstU nHumain(x)) = V si Iv1 (x) est humain.
Or Iv1 (x) = Alice donc
Ic1 (EstU nHumain(x)) = Ic1 (EstU nHumain)Iv1 (x)) =
Ic1 (EstU nHumain)(Alice) = V.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 163/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (3)

Si P est un prédicat d’arité m, alors


def
I(P (t1 , ..., tm )) ≡ (I(P ))(I(t1 ), ..., I(tm )).
Exemple d’interprétation du prédicat P arent/2 avec Ic1 :
Ic1 (P arent(y, x)) = V si Iv1 (y) est père ou mère de Iv1 (x).
Or Iv1 (y) = Bob et Iv1 (x) = Alice donc :
Ic1 (P arent(Bob, Alice)) = V
Exemple d’interprétation du prédicat EstU nHumain/1 avec
Ic1 :
Ic1 (EstU nHumain(x)) = V si Iv1 (x) est humain.
Or Iv1 (x) = Alice donc
Ic1 (EstU nHumain(x)) = Ic1 (EstU nHumain)Iv1 (x)) =
Ic1 (EstU nHumain)(Alice) = V.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 163/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (4)

Si s et t sont des termes, alors I(s = t) est V si I(s) = I(t) ;


F sinon.
Si A et B sont des formules, alors
¬A, (A ∧ B), (A ∨ B), (A ⇒ B) et (A ⇔ B) s’interprètent
comme dans le calcul des propositions.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 164/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (4)

Si s et t sont des termes, alors I(s = t) est V si I(s) = I(t) ;


F sinon.
Si A et B sont des formules, alors
¬A, (A ∧ B), (A ∨ B), (A ⇒ B) et (A ⇔ B) s’interprètent
comme dans le calcul des propositions.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 164/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (5)

Il faut aussi interpréter les (sous-)formules quantifiées :


Si A est une formule et x une variable, alors I(∀xA) est V si
Ix=d (A) est V pour tout élément d de D.
Exemple avec le domaine D1 = {Alice, Bob, Claude, Rex, ...}
et un nouveau symbole prédicat unaire : V ivant/1 qui
s’interprète de la façon suivante :
Ic1 (V ivant(t)) = V si I1 (t) est un être vivant.
Or : V ivant(Alice) = V ivant(Bob) = . . . = V.
Donc I1x=d,∀d∈D (V ivant(x)) = V, donc
I1 (∀x(V ivant(x))) = V.
Si A est une formule et x une variable, alors I(∃xA) est V si
Ix=d (A) est V pour au moins un élément d de D.
Exemple avec D1 et V ivant. V ivant(Alice) = V donc
I1 (∃x(V ivant(x)) = V.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 165/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (5)

Il faut aussi interpréter les (sous-)formules quantifiées :


Si A est une formule et x une variable, alors I(∀xA) est V si
Ix=d (A) est V pour tout élément d de D.
Exemple avec le domaine D1 = {Alice, Bob, Claude, Rex, ...}
et un nouveau symbole prédicat unaire : V ivant/1 qui
s’interprète de la façon suivante :
Ic1 (V ivant(t)) = V si I1 (t) est un être vivant.
Or : V ivant(Alice) = V ivant(Bob) = . . . = V.
Donc I1x=d,∀d∈D (V ivant(x)) = V, donc
I1 (∀x(V ivant(x))) = V.
Si A est une formule et x une variable, alors I(∃xA) est V si
Ix=d (A) est V pour au moins un élément d de D.
Exemple avec D1 et V ivant. V ivant(Alice) = V donc
I1 (∃x(V ivant(x)) = V.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 165/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (5)

Il faut aussi interpréter les (sous-)formules quantifiées :


Si A est une formule et x une variable, alors I(∀xA) est V si
Ix=d (A) est V pour tout élément d de D.
Exemple avec le domaine D1 = {Alice, Bob, Claude, Rex, ...}
et un nouveau symbole prédicat unaire : V ivant/1 qui
s’interprète de la façon suivante :
Ic1 (V ivant(t)) = V si I1 (t) est un être vivant.
Or : V ivant(Alice) = V ivant(Bob) = . . . = V.
Donc I1x=d,∀d∈D (V ivant(x)) = V, donc
I1 (∀x(V ivant(x))) = V.
Si A est une formule et x une variable, alors I(∃xA) est V si
Ix=d (A) est V pour au moins un élément d de D.
Exemple avec D1 et V ivant. V ivant(Alice) = V donc
I1 (∃x(V ivant(x)) = V.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 165/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (6)

On notera que, de facto :


∀x∃xA s’interprète comme ∃xA
Exemple : ∀x(V ivant(x)) ⇒ ∃x(V ivant(x)) donc
(I1 (∀x(V ivant(x))) = V) ⇒ (I1 (∃x(V ivant(x))) = V) .
∃x∀xA s’interprète comme ∀xA

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 166/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (6)

On notera que, de facto :


∀x∃xA s’interprète comme ∃xA
Exemple : ∀x(V ivant(x)) ⇒ ∃x(V ivant(x)) donc
(I1 (∀x(V ivant(x))) = V) ⇒ (I1 (∃x(V ivant(x))) = V) .
∃x∀xA s’interprète comme ∀xA

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 166/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation des formules (7)

Les formules ont une valeur de vérité dépendant de


l’interprétation choisie.
Pour une interprétation I donnée, on appelle valuation v – ou
assignation ou instanciation ou encore état– des variables
relatives à I, toute application de l’ensemble des variables de
D.
Pour une valuation v donnée, l’interprétation d’une formule
non close est obtenue en substituant aux variables libres leur
valeur dans D.
Puis de façon inductive, on calcule la valeur des termes inclus,
puis des prédicats puis des sous-formules...

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 167/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Tautologies et formules satisfiables

Propriétés
Une formule de F de L est universellement valide ssi pour toute
interprétation et pour toute valuation, F est V.
Une formule F est dite valide ssi il existe une interprétation I telle
que, pour toute valuation, F soit V(I |= F ). I est un modèle de F .
Une formule de F est dite satisfiable ssi il existe une interprétation
I et une valuation, telles que F soitV.
Une formule de F est dite contradictoire ssi pour toute
interprétation I et pour toute valuation, F est F.

Théorème de Löwenheim-Skolem (théorème 2)


Toute formule close valide sur un domaine infini dénombrable est
universellement valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 168/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Tautologies et formules satisfiables

Propriétés
Une formule de F de L est universellement valide ssi pour toute
interprétation et pour toute valuation, F est V.
Une formule F est dite valide ssi il existe une interprétation I telle
que, pour toute valuation, F soit V(I |= F ). I est un modèle de F .
Une formule de F est dite satisfiable ssi il existe une interprétation
I et une valuation, telles que F soitV.
Une formule de F est dite contradictoire ssi pour toute
interprétation I et pour toute valuation, F est F.

Théorème de Löwenheim-Skolem (théorème 3)


Toute formule close valide sur un domaine infini dénombrable est
universellement valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 168/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Clôture de formules (1)


La clôture universelle (ou fermeture universelle) d’une
formule A comportant les variables libres x1 , ..., xn est la
formule ∀x1 ...∀xn A.
Exemple : Soit la formule

∀y (y < x) ∨ (y > x) (5)
Alors la clôture universelle de (5) est :
 
∀x ∀y (y < x) ∨ (y > x) (6)

La clôture existentielle (ou fermeture existentielle) d’une


formule A comportant les variables libres x1 , ..., xn est la
formule ∃x1 ...∃xn A.
Exemple : La clôture existentielle de (5) est :
 
∃x ∀y (y < x) ∨ (y > x) (7)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 169/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Clôture de formules (2)

Soient UF (resp. EF ) la clôture universelle (resp. exist.) de F :


Notons alors que :  F ⇔  UF  ¬F ⇔  ¬EF
Corollaire de  F ⇔  UF : F est insatisfiable ssi il existe au
moins une interprétation pour laquelle U¬F est satisfaite.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 170/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Clôture de formules (3)

Instances de formules
La notion d’instance du calcul des proposisions se généralise à la
logique des prédicats avec la restrictions suivantes :
Seules les variables libres peuvent être instanciées.

Soient F 0 une instance de F :


On alors :  UF ⇒  F 0  F 0 ⇒  EF
On a aussi  F ssi toutes ses instances sont valides ;
Et F est consistante ssi au moins une de ses instances est
consistante.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 171/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Modèle de formule

La valeur de vérité d’une formule ne dépend que de la


valuation de ses variables libres.
Dans le cas d’une formule close, sa valeur de vérité pour une
interprétation donnée ne depend donc pas de la valuation ;
(c’est le cas du calcul propositionnel, dont la valeur de vérité
ne dépend que de l’interprétation).
Soit M une interprétation de L.
Soit F une formule close.
M est un modèle de F ssi la valeur de vérité de F dans M
est V (M  F ).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 172/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Tautologies remarquables (1)

Les schémas de formules suivant donnent lieu à des formules valides


si on remplace A et B par des formules ne comportant pas de
quantification sur x.
Schémas concernant ∀ :
i. (∀xA ∧ ∀xB) ⇔ ∀x(A ∧ B)
ii. (∀xA ∨ ∀xB) ⇒ ∀x(A ∨ B)
iii. ∀x(A ⇒ B) ⇒ (∀xA ⇒ ∀xB)
iv. ∀x(A ⇔ B) ⇒ (∀xA ⇔ ∀xB)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 173/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Tautologies remarquables (2)

Schémas concernant ∃ :
v. ∃x(A ∨ B) ⇔ (∃xA ∨ ∃xB)
vi. ∃x(A ∧ B) ⇒ (∃xA ∧ ∃xB)
vii. ∃x(A ⇒ B) ⇔ (∃xA ⇒ ∃xB)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 174/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Tautologies remarquables (3)

Schéma concernant ¬ :

viii. ∀x¬A ⇔ ¬∃xA x. ¬∀x¬A ⇔ ∃xA


ix. ∀xA ⇔ ¬∃x¬A xi. ¬∀xA ⇔ ∃x¬A

Principe de dualité 1 (prédicats)


Si dans une équivalence logique ne contenant pas le connecteur ⇒,
on intervertit les rôles de V et F, de ∧ et ∨ et enfin de ∀ et ∃, on
obtient encore une équivalence logique.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 175/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Tautologies remarquables (4)

Schémas concernant les liens entre ∀ et ∃ :


xii. ∀x∀yA ⇔ ∀y∀xA
xiii. ∃x∃yA ⇔ ∃y∃xA
xiv. ∃x∀yA ⇒ ∀y∃xA mais ∃x∀yA : ∀y∃xA.
Par exemple, si l’on considère la formule suivante,
∀y∃x(x + y = 0) qui exprime l’existence d’un opposé à tout
entier ; il est clair qu’elle est vraie pour tout y.
Par contre, la formule ∃x∀y(x + y = 0) est fausse : aucun
entier n’est l’opposé de tous les autres.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 176/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation : Exemple 1 (1)


Considérons les formules suivantes :
HG = ∀x∀y∀z (((P (x, y) ∧ P (y, z)) ⇒ G(x, z)) ;
HP = ∀x∃y P (y, x) ;
C = ∀x∃y G(y, x) ;
D = ∀x∀z (P (z, f (x)) ⇒ G(z, x)) ;
F = (HG ∧ HP ) ⇒ C.
Une interprétation possible pourrait être de fixer D comme
l’ensemble des êtres humains.
P (x, y) pourrait signifier que x est le père de y ;
G(x, y) pourrait signifier que x est le grand-père de y ;
La fonction f pourrait associer un individu x à sa mère (f (x)).
En fonction de l’interprétation proposée, comment lire ces formules ?
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 177/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Interprétation : Exemple 1 (2)


En fonction de l’interprétation proposée, comment lire ces formules :
HG = ∀x∀y∀z (((P (x, y) ∧ P (y, z)) ⇒ G(x, z)) ;
HG : Pour tous les être humains x, y et z, si x est père de y et y
père de z, alors x est grand-père de z.
HP = ∀x∃y P (y, x) ;
HP : Pour tout humain x, il existe un humain y étant le père de x.
C = ∀x∃y G(y, x) ;
C : Tout humain a un grand-père.
D = ∀x∀z (P (z, f (x)) ⇒ G(z, x)) ;
D : Si z est le père de la mère de x, alors z est le grand-père de x.
F = (HG ∧ HP ) ⇒ C.
F : ...

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 178/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Preuve et démonstration (1)

Question : Comment prouver une formule du calcul des


prédicats ?
Il faut prouver qu’elle est vraie ⇒ passer en revue toutes les
interprétations !
Si la possible de contient pas de variable : c’est possible. Il faut
faire comme en calcul propositionnel, en un nombre fini
d’opérations.
Si elle contient des variables, cela n’est plus envisageable, car
le nombre d’interprétation est infini (et le domaine de chaque
interprétation peut être infini !)
C’est donc impossible : aucun algorithme général qui permette
de le faire. La logique des prédicats est dite indécidable.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 179/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Sémantique du calcul des prédicats

Preuve et démonstration (2)

Il existe pourtant des algorithmes généraux pour la validité de


certaines familles de FBF (“formes clausales”)

1. Un théorème qui simplifie la vie ⇒ théorème de Herbrand ;


2. David et Putnam ;
3. Principe de résolution pour le calcul des prédicats ⇒ vers une
automatisation des démonstrations.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 180/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Plan : 2 - Chapitre 2. Logique des prédicats

Introduction
Syntaxe
Sémantique du calcul des prédicats
Formes prénexes et formes normales
Formes de Skolem, formes clausales
Aspects déductifs et Herbrand

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 181/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Formes prénexes (1)

Tout comme dans le calcul des propositions, les formes


normales permettent de simplifier les algorithmes de preuve de
consistance ou de validité.
Les problèmes liés aux quantificateurs sont nombreux ⇒ on
cherche à les isoler pour les ‘évacuer’ ensuite.
Une forme prénexe est une formule se composant d’une
matrice précédée d’un préfixe (i.e. une suite finie de
quantifications) :
Q1 x1 ....Qn xn M,
où Qi désigne ∀ ou ∃ pour i ∈ [1..n] et où M désigne une
formule sans quantifications (matrice).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 182/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Forme prénexe et forme normale (2)

L’intérêt des formes prénexes, en regard de nos objectifs de preuve


réside dans le théorème suivant :

Théorème 4
Toute formule de la logique des prédicats admet une forme prénexe
lui étant logiquement équivalente.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 183/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (1)

L’algorithme de mise sous forme prénexe est fort simple et de


déroule en 5 grandes étapes que voici :

Algorithme de mise sous forme prénexe


1 Éliminer les connecteurs d’implication et d’équivalence ;
2 Renommer les variables liées ayant des occurrences libres et
liées, ou celles dont les portées se chevauchent ;
3 Supprimer les quantificateurs inutiles ;
4 Transférer les négations vers les atomes ;
5 Transférer les quantificateurs en tête de formule.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 184/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (2)

Détails et exemple de l’algorithme de mise sous forme prénexe.


1 Éliminer les connecteurs d’implication et d’équivalence.
avec les règles de ré-écriture suivantes :
(X ⇔ Y ) −→ (X ⇒ Y ) ∧ (Y ⇒ X),
(U ⇒ V ) −→ (¬U ∨ V ).

Exemple : application à la formule A suivante :

A : ∀x[P (x) ∧ ∀y∃x(¬Q(x, y) ⇒ ∀zR(a, x, y))].


devient :
∀x[P (x) ∧ ∀y∃x(¬¬Q(x, y) ∨ ∀zR(a, x, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 185/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (2)

Détails et exemple de l’algorithme de mise sous forme prénexe.


1 Éliminer les connecteurs d’implication et d’équivalence.
avec les règles de ré-écriture suivantes :
(X ⇔ Y ) −→ (X ⇒ Y ) ∧ (Y ⇒ X),
(U ⇒ V ) −→ (¬U ∨ V ).

Exemple : application à la formule A suivante :

A : ∀x[P (x) ∧ ∀y∃x(¬Q(x, y) ⇒ ∀zR(a, x, y))].


devient :
∀x[P (x) ∧ ∀y∃x(¬¬Q(x, y) ∨ ∀zR(a, x, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 185/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (2)

Détails et exemple de l’algorithme de mise sous forme prénexe.


1 Éliminer les connecteurs d’implication et d’équivalence.
avec les règles de ré-écriture suivantes :
(X ⇔ Y ) −→ (X ⇒ Y ) ∧ (Y ⇒ X),
(U ⇒ V ) −→ (¬U ∨ V ).

Exemple : application à la formule A suivante :

A : ∀x[P (x) ∧ ∀y∃x(¬Q(x, y) ⇒ ∀zR(a, x, y))].


devient :
∀x[P (x) ∧ ∀y∃x(¬¬Q(x, y) ∨ ∀zR(a, x, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 185/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (3)

2 Renommer les variables liées ayant des occurrences libres et


liées.
Renommer les variables liées (si nécessaire), de manière à ce
qu’aucune variable n’ait simultanément des occurrences libres
et liées.
Cette condition est requise non seulement pour la formule
traitée mais aussi pour toutes ses sous-formules.

Suite de l’exemple :

∀x[P (x) ∧ ∀y∃x(¬¬Q(x, y) ∨ ∀zR(a, x, y))].


devient :
∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ ∀zR(a, u, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 186/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (3)

2 Renommer les variables liées ayant des occurrences libres et


liées.
Renommer les variables liées (si nécessaire), de manière à ce
qu’aucune variable n’ait simultanément des occurrences libres
et liées.
Cette condition est requise non seulement pour la formule
traitée mais aussi pour toutes ses sous-formules.

Suite de l’exemple :

∀x[P (x) ∧ ∀y∃x(¬¬Q(x, y) ∨ ∀zR(a, x, y))].


devient :
∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ ∀zR(a, u, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 186/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (3)

2 Renommer les variables liées ayant des occurrences libres et


liées.
Renommer les variables liées (si nécessaire), de manière à ce
qu’aucune variable n’ait simultanément des occurrences libres
et liées.
Cette condition est requise non seulement pour la formule
traitée mais aussi pour toutes ses sous-formules.

Suite de l’exemple :

∀x[P (x) ∧ ∀y∃x(¬¬Q(x, y) ∨ ∀zR(a, x, y))].


devient :
∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ ∀zR(a, u, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 186/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (4)

3 Supprimer les quantificateurs inutiles.


Supprimer les quantifications dont la portée ne contient pas
d’occurrence de la variable quantifiée ;
Ces quantifications sont en effet inutiles.

Suite de l’exemple :

∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ ∀zR(a, u, y))].


devient :
∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ R(a, u, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 187/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (4)

3 Supprimer les quantificateurs inutiles.


Supprimer les quantifications dont la portée ne contient pas
d’occurrence de la variable quantifiée ;
Ces quantifications sont en effet inutiles.

Suite de l’exemple :

∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ ∀zR(a, u, y))].


devient :
∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ R(a, u, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 187/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (4)

3 Supprimer les quantificateurs inutiles.


Supprimer les quantifications dont la portée ne contient pas
d’occurrence de la variable quantifiée ;
Ces quantifications sont en effet inutiles.

Suite de l’exemple :

∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ ∀zR(a, u, y))].


devient :
∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ R(a, u, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 187/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (5)


4 Transférer les négations vers les atomes.
Transférer toutes les occurrences de la négation
immédiatement devant les atomes, avec les règles de
ré-écriture suivantes :
¬∀xA −→ ∃x¬A,
¬∃xA −→ ∀x¬A,
¬(X ∧ Y ) −→ (¬X ∨ ¬Y ) (De Morgan),
¬(X ∨ Y ) −→ (¬X ∧ ¬Y ) (De Morgan),
¬¬A −→ A.

Suite de l’exemple :
∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ R(a, u, y))].
devient :
∀x[P (x) ∧ ∀y∃u(Q(u, y) ∨ R(a, u, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 188/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (5)


4 Transférer les négations vers les atomes.
Transférer toutes les occurrences de la négation
immédiatement devant les atomes, avec les règles de
ré-écriture suivantes :
¬∀xA −→ ∃x¬A,
¬∃xA −→ ∀x¬A,
¬(X ∧ Y ) −→ (¬X ∨ ¬Y ) (De Morgan),
¬(X ∨ Y ) −→ (¬X ∧ ¬Y ) (De Morgan),
¬¬A −→ A.

Suite de l’exemple :
∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ R(a, u, y))].
devient :
∀x[P (x) ∧ ∀y∃u(Q(u, y) ∨ R(a, u, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 188/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (5)


4 Transférer les négations vers les atomes.
Transférer toutes les occurrences de la négation
immédiatement devant les atomes, avec les règles de
ré-écriture suivantes :
¬∀xA −→ ∃x¬A,
¬∃xA −→ ∀x¬A,
¬(X ∧ Y ) −→ (¬X ∨ ¬Y ) (De Morgan),
¬(X ∨ Y ) −→ (¬X ∧ ¬Y ) (De Morgan),
¬¬A −→ A.

Suite de l’exemple :
∀x[P (x) ∧ ∀y∃u(¬¬Q(u, y) ∨ R(a, u, y))].
devient :
∀x[P (x) ∧ ∀y∃u(Q(u, y) ∨ R(a, u, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 188/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (6)


5 Transférer les quantificateurs en tête de formule.
Renommer les variables liées apparaissant dans des portées
différentes.
Exemple : ∃xP (x) ∧ ∀xQ(x) −→ ∃xP (x) ∧ ∀yQ(y)
Appliquer les règles suivantes (4 = ∧ ou ∨ et  = ∀ ou ∃) :
(xA 4 xB) −→ x(A 4 B),
Si A ne contient aucune occurrence de x :
(A 4 xB) −→ x(A 4 B),
Utiliser aussi les propriétés de commutativité, d’associativité et
d’idempotence de ∧ et ∨ pour simplifier les formules.
Suite de l’exemple :

∀x[P (x) ∧ ∀y∃u(Q(u, y) ∨ R(a, u, y))].


devient : ∀x∀y[P (x) ∧ ∃u(Q(u, y) ∨ R(a, u, y))].
puis : Apre : ∀x∀y∃u[P (x) ∧ (Q(u, y) ∨ R(a, u, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 189/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (6)


5 Transférer les quantificateurs en tête de formule.
Renommer les variables liées apparaissant dans des portées
différentes.
Exemple : ∃xP (x) ∧ ∀xQ(x) −→ ∃xP (x) ∧ ∀yQ(y)
Appliquer les règles suivantes (4 = ∧ ou ∨ et  = ∀ ou ∃) :
(xA 4 xB) −→ x(A 4 B),
Si A ne contient aucune occurrence de x :
(A 4 xB) −→ x(A 4 B),
Utiliser aussi les propriétés de commutativité, d’associativité et
d’idempotence de ∧ et ∨ pour simplifier les formules.
Suite de l’exemple :

∀x[P (x) ∧ ∀y∃u(Q(u, y) ∨ R(a, u, y))].


devient : ∀x∀y[P (x) ∧ ∃u(Q(u, y) ∨ R(a, u, y))].
puis : Apre : ∀x∀y∃u[P (x) ∧ (Q(u, y) ∨ R(a, u, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 189/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (6)


5 Transférer les quantificateurs en tête de formule.
Renommer les variables liées apparaissant dans des portées
différentes.
Exemple : ∃xP (x) ∧ ∀xQ(x) −→ ∃xP (x) ∧ ∀yQ(y)
Appliquer les règles suivantes (4 = ∧ ou ∨ et  = ∀ ou ∃) :
(xA 4 xB) −→ x(A 4 B),
Si A ne contient aucune occurrence de x :
(A 4 xB) −→ x(A 4 B),
Utiliser aussi les propriétés de commutativité, d’associativité et
d’idempotence de ∧ et ∨ pour simplifier les formules.
Suite de l’exemple :

∀x[P (x) ∧ ∀y∃u(Q(u, y) ∨ R(a, u, y))].


devient : ∀x∀y[P (x) ∧ ∃u(Q(u, y) ∨ R(a, u, y))].
puis : Apre : ∀x∀y∃u[P (x) ∧ (Q(u, y) ∨ R(a, u, y))].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 189/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Algorithme de mise sous forme prénexe (7)

Une formule peut admettre plusieurs formes prénexes


équivalentes
L’ordre d’application des règles ainsi que les renommages
éventuels influent sur le résultat.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 190/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Forme normale conjonctive de la logique des prédicats (1)

Les notions de littéral et de clause s’étendent naturellement au


calcul des prédicats :
Un littéral est un atome ou la négation d’un atome ;
Exemples : (x = (g(x, y)) et ¬P (f (x)) sont des littéraux.
Une clause est une disjonction de littéraux ;
Exemples : (x = (g(x, y)) ∨ ¬P (f (x)) et Q(y) sont des
clauses.

Remarque : un cube est une conjonction de littéraux.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 191/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes prénexes et formes normales

Forme normale conjonctive de la logique des prédicats (2)

Ayant les littéraux et les clauses, la notion de forme normale


conjonctive s’étendent également au calcul des prédicats :
Une forme normale conjonctive (FNC) est une une forme
prénexe dont la matrice est une conjonction de clauses.
Exemple : ((x = (g(x, y)) ∨ ¬P (f (x)) ∧ Q(y)) est une FNC.
On la notera aussi {(x = (g(x, y)) ∨ ¬P (f (x)), Q(y)}.
On comprend donc que toute formule admet donc une FNC lui
étant logiquement équivalente.

Remarque : une forme normale disjonctive est une disjonction de cubes.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 192/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Plan : 2 - Chapitre 2. Logique des prédicats

Introduction
Syntaxe
Sémantique du calcul des prédicats
Formes prénexes et formes normales
Formes de Skolem, formes clausales
Aspects déductifs et Herbrand

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 193/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes de Skolem (1)

L’usage des quantifications est très stricte dans les formes


prénexe et normales (i.e. uniquement dans le préfixe). Ceci
peut être très utile pour les calculs de sémantique, en perdant
un peu de pouvoir d’expression.
En contraignant un peu plus les quantifications sur une
formule A, on peut arriver à une forme très simple SA (ou
Asko ) en garantissant que A et SA sont toutes deux
consistantes ou inconsistantes.
Ce lien est plus faible que ⇔ mais très utile pour prouver que
{H1 , H2 } ⇒ C, car cela revient à prouver que la formule
G : (H1 ∧ H2 ∧ ¬C) est inconsistante, ce qui est généralement
beaucoup plus facile à faire avec SG .

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 194/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes de Skolem (2)

Pour arriver à une forme de Skolem à partir d’une formule de la


logique des prédicats :
Nous nous ramenons aux formes prénexes. Étant logiquement
équivalentes aux formules classiques, cela ne restreint pas le
problème ;
Nous ne considérons que les formules closes, c-à-d celles ne
contenant pas de variable libre :
En effet, si A est une formule dont les variables libres sont
x1 , ..., xn , et si A ne contient aucune occurrence liée de
x1 , ..., xn (après renommage éventuel), alors la formule
∃x1 ...∃xn A :
1 est close ;
2 est consistante ssi A est consistante.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 195/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes de Skolem (3)

Ce que nous cherchons à obtenir est une forme de Skolem,


intéressante car les preuves d’inconsistances sont bien plus
efficaces sur des formes de Skolem que sur des formes
classiques.
L’algorithme de réduction d’une formule quelconque du calcul
des prédicats A à une forme de Skolem requiert avant toute
chose deux grandes opérations préalables
1 Transformer A en une forme prénexe avec l’algorithme décrit
précedemment ;
2 Transformer ensuite la matrice en une FNC en utilisant
l’algorithme de mise sous FNC de la logique des propositions.
Le résultat est une forme prénexe close.
(Suite →)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 196/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes de Skolem (4)


La forme de Skolem associée à une forme prénexe close (et
donc à la formule de départ) est obtenue par application de la
procédure suivante, dite transformation de Skolem, dont l’effet est
de supprimer les quantifications existentielles :
1 Associer à toute variable quantifiée existentiellement : la liste

des variables quantifiées universellement qui la


précèdent, ainsi qu’une fonction dont le nombre de places est
la taille de la liste.
Suite de l’exemple :
Prenons comme exemple la forme prénexe précédemment obtenue :
Apre : ∀x∀y∃u[P (x) ∧ (Q(u, y) ∨ R(a, u, y))]
Il n’y a qu’une seule variable quantifiée existentiellement : u.
Nous lui associons la liste des variables quantifiées universellement
qui la précèdent : x et y et une fonction f à 2 places f (_, _).
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 197/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes de Skolem (4)


La forme de Skolem associée à une forme prénexe close (et
donc à la formule de départ) est obtenue par application de la
procédure suivante, dite transformation de Skolem, dont l’effet est
de supprimer les quantifications existentielles :
1 Associer à toute variable quantifiée existentiellement : la liste

des variables quantifiées universellement qui la


précèdent, ainsi qu’une fonction dont le nombre de places est
la taille de la liste.
Suite de l’exemple :
Prenons comme exemple la forme prénexe précédemment obtenue :
Apre : ∀x∀y∃u[P (x) ∧ (Q(u, y) ∨ R(a, u, y))]
Il n’y a qu’une seule variable quantifiée existentiellement : u.
Nous lui associons la liste des variables quantifiées universellement
qui la précèdent : x et y et une fonction f à 2 places f (_, _).
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 197/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes de Skolem (5)

2 Dans la matrice de la formule, remplacer chaque occurrence de


chaque variable quantifiée existentiellement par le terme
étant : la fonction associée à la variable remplacée, suivi de
la liste d’arguments associée à cette même variable.

Suite de l’exemple :
Dans :
∀x∀y∃u[P (x) ∧ (Q(u, y) ∨ R(a, u, y))]
On remplace u par f (x, y) :

∀x∀y∃u[P (x) ∧ (Q(f (x, y), y) ∨ R(a, f (x, y), y))]

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 198/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes de Skolem (5)

3 Dans la matrice de la formule, remplacer chaque occurrence de


chaque variable quantifiée existentiellement par le terme
étant : la fonction associée à la variable remplacée, suivi de
la liste d’arguments associée à cette même variable.

Suite de l’exemple :
Dans :
∀x∀y∃u[P (x) ∧ (Q(u, y) ∨ R(a, u, y))]
On remplace u par f (x, y) :

∀x∀y∃u[P (x) ∧ (Q(f (x, y), y) ∨ R(a, f (x, y), y))]

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 198/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes de Skolem (6)

4 Supprimer de la formule les quantifications existentielles.

Suite de l’exemple :

∀x∀y∃u[P (x) ∧ (Q(f (x, y), y) ∨ R(a, f (x, y), y))]

Devient :

SA : ∀x∀y[P (x) ∧ (Q(f (x, y), y) ∨ R(a, f (x, y), y))]

On obtient ainsi une forme de Skolem.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 199/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes de Skolem (6)

5 Supprimer de la formule les quantifications existentielles.

Suite de l’exemple :

∀x∀y∃u[P (x) ∧ (Q(f (x, y), y) ∨ R(a, f (x, y), y))]

Devient :

SA : ∀x∀y[P (x) ∧ (Q(f (x, y), y) ∨ R(a, f (x, y), y))]

On obtient ainsi une forme de Skolem.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 199/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes de Skolem (7)

Skolémisation : explications
De quel droit supprime-t-on les quantifications existentielles ?
Soit la formule F = ∀x∃y(¬P (x) ∨ R(x, y)). La forme
skolémisée est Fsko = ∀x(¬P (x) ∨ R(x, f (x))).
En effet, si pour chaque x, il existe y tel qu’une propriété
R(x, y) soit vérifiée, alors on peut introduire une fonction
f (x) = y telle que, ∀x, R(x, f (x)) est vérifiée.

Exemple
Soit par exemple la formule A = ∀x∃y f (x) = y.
On remplace y par une fonction qui à x associe y :
Asko = ∃g∀x f (x) = g(x).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 200/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes de Skolem (8)

Théorème 5.
Soit F une formule et Fsko sa forme de Skolem :
F admet un modèle ⇔ Fsko en admet un.
Autrement dit, F est satisfiable ⇔ Fsko l’est.

Corallaire du théorème 5.
Soit F une formule et Fsko sa forme de Skolem :
La formule initiale F est insatisfiable ⇔sa forme skolémisée
Fsko l’est.
Autrement dit : la négation de la formule initiale est prouvable
si et seulement si la négation de sa forme skolémisée l’est :
` ¬F ⇔ ` ¬Fsko .

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 201/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes de Skolem (9)


Remarques
On observe plusieurs choses :
Une forme de Skolem est une forme prénexe, dont le préfixe ne
contient que des quantifications universelles.
Toute forme prénexe sans quantification existentielle est
elle-même sa propre forme de Skolem.
Par ailleurs,
Lorsque les conventions typographiques permettent de
distinguer constantes et variables, le préfixe d’une forme de
Skolem peut être omis, puisque la matrice ne contient
implicitement que des variables quantifiées universellement.
On parle dans ce cas d’instance d’une forme de Skolem, plutôt
que d’une instance de la matrice d’une forme de Skolem.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 202/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes clausales (1)

Une forme clausale est une forme de Skolem dont la matrice


est une FNC.
Dans ce cas, on dit aussi que la forme de Skolem est sous
forme standard de Skolem.

Théorème 6
Toute forme de Skolem admet une forme clausale équivalente.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 203/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes clausales (1)

Une forme clausale est une forme de Skolem dont la matrice


est une FNC.
Dans ce cas, on dit aussi que la forme de Skolem est sous
forme standard de Skolem.

Théorème 6
Toute forme de Skolem admet une forme clausale équivalente.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 203/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes clausales (2)

Plus précisément, la forme clausale d’une formule F est constituée


de l’ensemble des clauses de la forme standard de Skolem de F où :
Les variables quantifiées universellement sont conservées, et les
fonctions (y compris les fonctions de Skolem) ne sont pas
modifiées ;
Les variables quantifiées existentiellement sont remplacées par
des constantes, toutes différentes ;
Les variables sont renommées d’une clause à l’autre.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 204/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Formes clausales – Exemple

Exemple — Forme clausale


Soit F : ∀x∃y∃z((¬P (x, y) ∧ Q(x, y)) ∨ R(x, y, z))
La forme de Skolem de F est :
(∃f )(∃g)∀x((¬P (x, f (x)) ∧ Q(x, g(x))) ∨ (R(x, f (x), g(x)))
La forme standard de Skolem de F est :
(∃f )(∃g)∀x((¬P (x, f (x)) ∨ R(x, f (x), g(x))) ∧ (Q(x, g(x)) ∨
R(x, f (x), g(x))))
On obtient alors deux clauses :
C1 : (¬P (x1 , f (x1 )) ∨ R(x1 , f (x1 ), g(x1 )))
C2 : (Q(x2 , g(x2 )) ∨ R(x2 , f (x2 ), g(x2 ))))
La forme clausale de F est alors : C = {C1 , C2 }.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 205/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Formes de Skolem, formes clausales

Exercice

Les dragons
Considérons les énoncés suivants :
1 Tous les enfants d’un dragon peuvent voler
2 Archie a au moins un parent vert ou rose
3 Un dragon est heureux si tous ses enfants peuvent voler
4 Les dragons verts peuvent voler
5 Un dragon est vert s’il a au moins un parent vert ou rose
Formaliser les énoncés 1 à 5 puis mettre sous forme clausale la
conjonction des énoncés 3 à 5.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 206/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Conséquence logique et systèmes

Définition. Conséquence logique


Soit A un ensemble de formules closes de L et F une formule close
de L.
On dit que F est conséquence logique de A si toute réalisation de
F qui satisfait de A satisfait aussi F .
On note de A ` F .

Définition. Système d’axiomes


Un ensemble de formules closes est appelé système d’axiomes.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 207/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Conséquence logique et systèmes

Exemple — Les entiers naturels.


Le système d’axiomes suivant définit les entiers naturels.
1 ∀x∃y (y = f (x) ∧ ∀z (z = f (x) ⇒ y = z))
2 ¬(∃x f (x) = 0)
3 ∀x (¬(x = 0) ⇒ (∃y (y = g(x) ∧ ∀z (z = g(x) ⇒ y = z))))

Explication : la fonction f représente successeur immédiat alors que


g représente prédécesseur immédiat.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 208/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Conséquence logique et systèmes

Exemple — Les entiers naturels.


Le système d’axiomes suivant définit les entiers naturels.
1 ∀x∃y (y = f (x) ∧ ∀z (z = f (x) ⇒ y = z))
Tout entier a un unique successeur.
2 ¬(∃x f (x) = 0)
3 ∀x (¬(x = 0) ⇒ (∃y (y = g(x) ∧ ∀z (z = g(x) ⇒ y = z))))

Explication : la fonction f représente successeur immédiat alors que


g représente prédécesseur immédiat.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 208/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Conséquence logique et systèmes

Exemple — Les entiers naturels.


Le système d’axiomes suivant définit les entiers naturels.
1 ∀x∃y (y = f (x) ∧ ∀z (z = f (x) ⇒ y = z))
Tout entier a un unique successeur.
2 ¬(∃x f (x) = 0)
0 n’est successeur d’aucun élément.
3 ∀x (¬(x = 0) ⇒ (∃y (y = g(x) ∧ ∀z (z = g(x) ⇒ y = z))))

Explication : la fonction f représente successeur immédiat alors que


g représente prédécesseur immédiat.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 208/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Conséquence logique et systèmes

Exemple — Les entiers naturels.


Le système d’axiomes suivant définit les entiers naturels.
1 ∀x∃y (y = f (x) ∧ ∀z (z = f (x) ⇒ y = z))
Tout entier a un unique successeur.
2 ¬(∃x f (x) = 0)
0 n’est successeur d’aucun élément.
3 ∀x (¬(x = 0) ⇒ (∃y (y = g(x) ∧ ∀z (z = g(x) ⇒ y = z))))
Tout élément non nul a un prédécesseur unique.

Explication : la fonction f représente successeur immédiat alors que


g représente prédécesseur immédiat.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 208/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Plan : 2 - Chapitre 2. Logique des prédicats

Introduction
Syntaxe
Sémantique du calcul des prédicats
Formes prénexes et formes normales
Formes de Skolem, formes clausales
Aspects déductifs et Herbrand

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 209/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Univers de Herbrand (1)


Les travaux de Herbrand sont fondamentaux pour le calcul des
prédicats, et en particulier pour fournir des outils nécessaires à des
preuves automatisées dans ce domaine.
Univers de Herbrand
Soit C un ensemble de clauses. Considérons H0 ensemble des
symboles de constante ayant au moins une occurrence dans C. Si C
est vide, on pose H0 = {α}, où α est appelé constante de
Herbrand.
On définit Hi , ensemble des termes clos de C de niveau i par :
S
Hi = Hi−1 ∪ {f (t1 , ..., tn )}
f/n ,tj ∈Hi−1

H∞ = limi→∞ Hi est appelé univers de Herbrand.


P. Clemente - INSA Centre Val de Loire Dpt STI 3A 210/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Univers de Herbrand (2)

L’univers de Herbrand représente l’ensemble des éléments que l’on


manipule.
Exemple — Univers de Herbrand
Soit C = {P (a), ¬P (x) ∨ P (f (x))}. On a :
H0 = {a}
H1 = H0 ∪ {f (a)} = {a, f (a)}
..
.
Hi = {a, ..., f i−1 (a)} ∪ {f (a), ..., f i (a)} = {f j (a)|j ∈ [1..i]}
H∞ = {f k (a)|k ∈ N}.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 211/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Univers de Herbrand (3)


Définition — Atome de Herbrand
On appelle atomes de Herbrand associés à un ensemble de
clauses C = {C1 , ..., Cn } les atomes obtenus en remplaçant dans les
atomes de C les variables par des éléments de H∞ .

Définition — Base de Herbrand


L’ensemble des atomes de Herbrand est appelé base de Herbrand
ou «atom set».

Définition — Réalisation de base


On appelle instance (ou réalisation, ou interprétation) de base
d’une clause C1 , une clause obtenue en remplaçant les variables de
C1 par des éléments de H∞ . Les réalisations de base sont des
énoncés de base (atomes appliqués à des éléments de l’univers).
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 212/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Univers de Herbrand (4)

Exemple — Interprétations de base


Soit C = {P (a, f (x)), Q(b) ∨ ¬R(g(y))}.
On a H∞ = {a, b, f (a), f (b), g(a), g(b), f (g(a)), ...}.
Quelques atomes de Herbrand :
{P (a, f (a)), P (a, f (g(b))), Q(b), R(g(a))}.
Quelques interprétations de base :
{P (a, f (a)), Q(b) ∨ ¬R(g(a)), Q(b) ∨ ¬R(g(b))}.

Définition. Système de Herbrand


On appelle système de Herbrand associé à un ensemble de clauses
C, l’ensemble des interprétations de base des clauses de C.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 213/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Théorème de Herbrand

Théorème 7 (Théorème de Herbrand) (non démontré)


Un ensemble de clauses C est insatisfiable ssi il existe un ensemble
fini C 0 de réalisations de base insatisfiable.

Exemple
Soit C = {Homme(x), ¬Homme(f (a))}.
C 0 = {Homme(f (a)), ¬Homme(f (a))} est un ensemble de
réalisations de bases insatisfiable.

Corollaire 1. du théorème 7
Un ensemble de clauses C est satisfiable ssi tout ensemble fini de
réalisations de base est satisfiable.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 214/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Théorème de Herbrand

Théorème 7 (Théorème de Herbrand) (non démontré)


Un ensemble de clauses C est insatisfiable ssi il existe un ensemble
fini C 0 de réalisations de base insatisfiable.

Exemple
Soit C = {Homme(x), ¬Homme(f (a))}.
C 0 = {Homme(f (a)), ¬Homme(f (a))} est un ensemble de
réalisations de bases insatisfiable.

Corollaire 1. du théorème 7
Un ensemble de clauses C est satisfiable ssi tout ensemble fini de
réalisations de base est satisfiable.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 214/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Applications du théorème de Herbrand

1 Preuve qu’une formule est universellement valide


⇒ On montre que sa négation est inconsistante.
2 Validation de raisonnement
⇒ On montre que les prémisses et la négation de la
conclusion forment un ensemble de clauses insatisfiable.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 215/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Applications du théorème de Herbrand

1 Preuve qu’une formule est universellement valide


⇒ On montre que sa négation est inconsistante.
2 Validation de raisonnement
⇒ On montre que les prémisses et la négation de la
conclusion forment un ensemble de clauses insatisfiable.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 215/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Preuve de validité

Exemple — Preuve de validité


Montrons que la formule suivante est universellement valide :

F = ∀x∃y∀z(Rel(x, z) ⇒ Rel(x, y))

Supposons qu’elle ne le soit pas. Il existe alors une interprétation I et une


valuation v telle que la négation de F soit vraie .
On a : ¬F = ∃x∀y∃z(Rel(x, z) ∧ ¬Rel(x, y))
La mise sous forme standard de Skolem de ¬F donne :
∃x∃f ∀y (Rel(x, f (y)) ∧ ¬Rel(x, y))
La forme clausale de ¬F est : C¬F = {Rel(a, f (y1 )), ¬Rel(a, y2 )}
L’ensemble de réalisations de base C 0 = {Rel(a, f (a)), ¬Rel(a, f (a))}
est insatisfiable. (On a pris y1 = a et y2 = a). La négation de F ne peut
donc être vraie, la formule est donc universellement valide .
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 216/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Validation de raisonnement (1)

Exemple — Preuve de raisonnement


On applique en général la méthode suivante :
1 On formalise les hypothèses (prémisses) H et la (les) négation(s) de
conclusion(s) C ;
2 On calcule l’ensemble des clauses associées C
3 On trouve un ensemble d’interprétations de base qui invalide C (Th.
Herbrand).

Exemple — Invalidation de raisonnement


On fait la même chose mais l’étape 3 devient :
3 On prouve que C est universellement valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 217/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Validation de raisonnement (2)


Exemple
Montrons que le raisonnement suivant est valide :
1 ∃x P (x) ⇒ ∀y P (y)
2 ∀x (P (x) ∨ Q(x))
3 Donc : ∃x ¬Q(x) ⇒ ∀y P (y)

La mise sous forme standard de Skolem des prémisses et de la négation de la


conclusion donne :
1 ∀x∀y (¬P (x) ∨ P (y))
2 ∀x (P (x) ∨ Q(x))
3 ∃x∃y (¬Q(x) ∧ ¬P (y)
La mise sous forme clausale nous donne l’ensemble suivant :
C = {¬(P (x1 ) ∨ P (y), P (x2 ) ∨ Q(x2 ), ¬Q(a), ¬P (b)}.
L’ensemble C 0 = {¬(P (a) ∨ P (b), P (a) ∨ Q(a), ¬Q(a), ¬P (b)} est
insatisfiable (avec x1 = x2 = a et y = b), validant ainsi le raisonnement.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 218/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Preuve et déduction automatique : la résolution

Les validations de formules ou de raisonnement précédentes ne


sont pas des algorithmes, elles sont faites à la main.
Comment déterminer efficacement un (ou les) ensemble(s) de
base permettant d’invalider une formule logique ?

Technique de résolution
Idée no 1 : utiliser la technique de résolution pour produire F
ou bien une conséquence logique attendue (e.g. théorème).
⇒ Comment adapter la résolution de la logique des
propositions à la logique du premier ordre ?
La résolution de la logique des propositions utilise des FNC,
donc on doit pouvoir la transposer à la LPO.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 219/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Technique de résolution pour la LPO ? (1)


Exemple trivial
Soit un ensemble C de 2 clauses : C1 = F (a) ∨ G(a) et
C2 = ¬F (a) ∨ H(a).
Un atome de la LPO étant assimilé à un littéral (comme en
logique des propositions, on peut considérer que les clauses C
précédentes sont de la forme c1 = f ∨ g et c2 = ¬f ∨ h.
On peut alors calculer la résolvante de c1 et c2 : g ∨ h.
La résolvante de C1 et C2 est donc G(a) ∨ H(a).

Dans tous les cas de ce genre, c’est-à-dire ceux où l’univers de


Herbrand n’est pas infini, il ne contient que quelques
constantes, c’est très facile.
Qu’en est-il pour les cas ou l’univers de Herbrand comporte
aussi des variables ?
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 220/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Technique de résolution pour la LPO ? (2)


Exemple moins trivial
Soit 2 clauses : C1 = F (x) ∨ G(x) et C2 = ¬F (x) ∨ H(x).
Dans ce cas, le principe de résolution est-il applicable ?
Oui, car le ∀x implicite exprime bien que
∀x ((F (x) = V) ⇔ (¬F (x) ⇔ F)) et inversement. Du coup,
on aura bien soit G(x), soit H(x), c’est-à-dire l’application du
principe de résolution.
La résolvante de C1 et C2 ici est donc G(x) ∨ H(x).

Dans les cas de ce genre, où l’univers de Herbrand n’est pas


infini, et ne contient que quelques constantes et variables, le
principe de résolution classique reste applicable.
Et pour les cas ou l’univers de Herbrand est infini, c’est-à-dire
quand les termes sont aussi des fonctions ?
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 221/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Technique de résolution pour la LPO ? (3)

Exemple non trivial


Soit 2 clauses : C1 = F (x) ∨ G(x) et C2 = ¬F (s(y)) ∨ H(y).
Dans ce cas, le principe de résolution n’est pas applicable.

Idée no 2 : Utiliser le théorème de Herbrand et l’Univers de


Herbrand, pour déterminer des valuations qui vont bien.
Idée no 2 bis : Exploiter la substitution pour l’unification des
clauses.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 222/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Technique de résolution pour la LPO ? (4)

Exemple non trivial – v2


Reprenons les 2 clauses de C : C1 = F (x) ∨ G(x) et
C2 = ¬F (s(y)) ∨ H(y).
En substituant s(a) à x dans C1 et a à y dans C2 , on obtient
les instances de base C 0 1 = F (s(a)) ∨ G(s(a)) et
C 0 2 = ¬F (s(a)) ∨ H(a).
On peut alors calculer une résolvante à C 0 1 et C 0 2 :
G(s(a)) ∨ H(a).
On a “unifié” les clauses C1 et C2 avec l’unificateur suivant
σ = {x/s(a), y/a}.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 223/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Technique de résolution pour la LPO ? (5)

Exemple non trivial – v3


Reprenons les 2 clauses de C : C1 = F (x) ∨ G(x) et
C2 = ¬F (s(y)) ∨ H(y).
En substituant s(x) à x dans C1 et x à y dans C2 , on obtient
les instances de base C 0 1 = F (s(x)) ∨ G(s(x)) et
C 0 2 = ¬F (s(x)) ∨ H(x).
On peut alors calculer une résolvante plus générale à C 0 1 et
C 0 2 : G(s(x)) ∨ H(x).
Cette résolvante est plus intéressante, car de par sa portée plus
importante, elle peut permettre de démontrer plus de choses.
On a “unifié” les clauses C1 et C2 avec l’unificateur suivant
σ = {x/s(x), y/x}.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 224/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Substitution et instanciation (1)


Une substitution est une application de l’ensemble V des
variables vers l’ensemble T des termes. Une substitution σ sera
représentée par l’ensemble des couples (x/σ(x)) tels que
σ(x) 6= x.
Étant donné un terme t et une substitution σ, le terme σ[t] est
obtenu en remplaçant simultanément toutes les occurrences
des variables x intervenant dans t par leur images respectives
σ(x).
Exemple
Si σ = {x/f (x), y/g(x, z)}, et t = g(f (x), g(f (z), y))
alors σ[t] = g(f (f (x)), g(f (z), g(x, z))).

Un terme t2 est une instance d’un terme t1 s’il existe une


substitution σ telle que t2 = σ[t1 ].
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 225/260
Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Substitution et instanciation (2)

La notion de substitution et d’instance se généralise aux


prédicats ainsi qu’aux matrices, qui sont les formules ne
comportant pas de quantifications.
La notion de substitution et d’instance est encore pertinente
dans le cas d’un formule quantifiée, mais seules les variables
libres peuvent être instanciées.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 226/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Substitution et instanciation (3)

Exemple
Dans ∀x[P (x, y, z) ∧ Q(a, x)] ⇒ ∃uR(b, f (u), v), les instances
seront obtenues par substitutions sur {y/t1 , z/t2 , v/t3 }, avec
aucune occurrence de x et u dans t1 , t2 ni t3 .

Exemple
Pour :
σ = {x/a, y/f (a), z/g(f (b))} ;
F = P (x, y, z) ;
On obtient σ[F ] = P (a, f (a), g(f (b))).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 227/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Substitution et instanciation (4)

Définition — Composition de substitutions


La composition de 2 substitutions σ1 et σ2 (notée σ1 ◦ σ2 ) :
σ1 = {x1 /t1 , ..., xn /tn } ; et
σ2 = {y1 /u1 , ..., ym /um }
est obtenue à partir de l’ensemble :
{x1 /σ2 [t1 ], ..., xn /σ2 [tn ], y1 /u1 , ..., ym /um } en éliminant :
tout élément xi /σ2 [ti ] tel que xi = σ2 [ti ]
tout yj /uj tel que yi ∈ {x1 , ..., xn }

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 228/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Substitution et instanciation (5)

Exemple — Composition de substitutions


σ1 = {x/f (y), y/z} et σ2 = {x/a, y/b, z/y} donnent
{x/f (b), y/y, x/a, y/b, z/y}.
σ1 ◦ σ2 est donc : {x/f (b), z/y}.
Si on prend F = P (x, y, z), alors σ1 [F ] = P (f (y), z, z) et
σ2 [σ1 [F ]] = P (f (b), y, y).
Cela qui est bien équivalent à (σ1 ◦ σ2 )[F ].

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 229/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Substitution et instanciation (6)

Définition — Unificateur
Une substitution σ est appelée unificateur d’un ensemble de
formule F1 , ..., Fn ssi σ[F1 ] = ... = σ[Fn ]. L’ensemble F1 , ..., Fn est
alors dit unifiable (ou encore σ-unifiable).

Exemples
Soit l’ensemble F = {P (a, x), P (a, f (y))}.
σ1 = {x/f (a), y/a} est un unificateur possible de F :
σ1 [F ] = {P (a, f (a)), P (a, f (a))}
σ2 = {x/f (z), y/z} est un autre unificateur possible de F :
σ2 [F ] = {P (a, f (z)), P (a, f (z))}

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 230/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Substitution et instanciation (7)

Définition — Unificateur minimal


Un unificateur σ d’un ensemble d’expressions E = E1 , ..., En est
l’unificateur minimal (ou unificateur le plus général ) de E ssi
pour tout unificateur θ, il existe λ tel que θ = σ ◦ λ.

Exemple
L’unificateur minimal de {P (a, x), P (a, f (y))} est {x/f (y)}.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 231/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Substitution et instanciation (8)

Définition — Ensemble de discordance


L’ensemble de discordance d’un ensemble (non vide) d’expressions
de la logique de prédicats E = {E1 , ..., En } est obtenu :
en localisant la première position à partir de laquelle des
expressions de E n’ont pas toutes le même symbole,
puis en prenant dans chaque expression Ei .

Exemple
Pour E = {P (x, f (y, z)), P (x, g(x))}, l’ensemble de discordance
est {f (y, z), g(x)}.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 232/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (1)

Principe de résolution
On peut maintenant utiliser le théorème de Herbrand et l’unification
pour appliquer le principe de résolution au calcul des prédicats.

Valider le raisonnement suivant :


(Tiré de [Lewis Caroll 66, Logique sans peine])
1 Aucun avare n’est altruiste.
2 Les personnes qui conservent des coquilles d’oeufs sont avares.
3 Donc aucune personne altruiste ne conserve des coquilles
d’oeufs.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 233/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (2)

1 — Formalisation des énoncés précédents


On utilisera les prédicats suivants :
Av(x) : « x est avare ».
Al(x) : « x est altruiste ».
Coq(x) : « x conserve des coquilles d’oeufs ».
On formalise ensuite les énoncés 1 à 3 précédents :
a. “Aucun avare n’est altruiste.” : ∀x (Av(x) ⇒ ¬Al(x))
b. “Les personnes qui conservent des coquilles d’oeufs sont
avares.” : ∀x (Coq(x) ⇒ Av(x))
c. “Donc aucune personne altruiste ne conserve des coquilles
d’oeufs.” : ∀x (Al(x) ⇒ ¬Coq(x))

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 234/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (3)

2 — Mise sous forme clausale des énoncés précédents


a. ∀x (Av(x) ⇒ ¬Al(x)) : {¬Av(x1 ) ∨ ¬Al(x1 )}
b. ∀x (Coq(x) ⇒ Av(x)) : {¬Coq(x2 ) ∨ Av(x2 )}
c. ∀x (Al(x) ⇒ ¬Coq(x)) : {¬Al(x3 ) ∨ ¬Coq(x3 )}
La négation de (c) nous donne : {Al(a), Coq(a)}, ce qui
conduit à deux clauses :
d. {Al(a)}
e. {Coq(a)}

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 235/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (4)

3 — Résolution par réfutation


H∞ = {a} pour les clauses (a), (b), (d) et (e).

no source clause unification


1: (d) Al(a)
2: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
3: subst :(2) ¬Av(a) ∨ ¬Al(a) σ1 [2] = {x1 /a}
4: reso :(1),(3) ¬Av(a)
5: (b) ¬Coq(x2 ) ∨ Av(x2 )
6: subst :(5) ¬Coq(a) ∨ Av(a) σ2 [5] = {x2 /a}
7: réso :(4),(6) ¬Coq(a)
8: (e) Coq(a)
9: réso :(7),(8) 

On a identifié un ensemble de réalisations de base insatisfiable incluant la


négation de la conclusion, prouvant que le raisonnement est valide : 1,3,6,8.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 236/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (5)

4 — Résolution classique (sans réfutation)


Sans la réfutation, pour prouver que le raisonnement est valide, il faut montrer
que (c) est une conséquence de (a) et (b). Avec la résolution, il faut donc
produire (c) à partir de (a) et (b).
H∞ = {α} pour les clauses (a), (b), et (c).

no source clause unification


1: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
2: (b) ¬Coq(x2 ) ∨ Av(x2 )
3: subst :(2) ¬Coq(x1 ) ∨ Av(x1 ) σ1 [2] = {x2 /x1 }
4: reso :(1),(3) ¬Al(x1 ) ∨ ¬Coq(x1 )
5: subst :(4) ¬Al(x3 ) ∨ ¬Coq(x3 ) σ2 [4] = {x1 /x3 }

On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 237/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (5)

4 — Résolution classique (sans réfutation)


Sans la réfutation, pour prouver que le raisonnement est valide, il faut montrer
que (c) est une conséquence de (a) et (b). Avec la résolution, il faut donc
produire (c) à partir de (a) et (b).
H∞ = {α} pour les clauses (a), (b), et (c).

no source clause unification


1: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
2: (b) ¬Coq(x2 ) ∨ Av(x2 )
3: subst :(2) ¬Coq(x1 ) ∨ Av(x1 ) σ1 [2] = {x2 /x1 }
4: reso :(1),(3) ¬Al(x1 ) ∨ ¬Coq(x1 )
5: subst :(4) ¬Al(x3 ) ∨ ¬Coq(x3 ) σ2 [4] = {x1 /x3 }

On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 237/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (5)

4 — Résolution classique (sans réfutation)


Sans la réfutation, pour prouver que le raisonnement est valide, il faut montrer
que (c) est une conséquence de (a) et (b). Avec la résolution, il faut donc
produire (c) à partir de (a) et (b).
H∞ = {α} pour les clauses (a), (b), et (c).

no source clause unification


1: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
2: (b) ¬Coq(x2 ) ∨ Av(x2 )
3: subst :(2) ¬Coq(x1 ) ∨ Av(x1 ) σ1 [2] = {x2 /x1 }
4: reso :(1),(3) ¬Al(x1 ) ∨ ¬Coq(x1 )
5: subst :(4) ¬Al(x3 ) ∨ ¬Coq(x3 ) σ2 [4] = {x1 /x3 }

On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 237/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (5)

4 — Résolution classique (sans réfutation)


Sans la réfutation, pour prouver que le raisonnement est valide, il faut montrer
que (c) est une conséquence de (a) et (b). Avec la résolution, il faut donc
produire (c) à partir de (a) et (b).
H∞ = {α} pour les clauses (a), (b), et (c).

no source clause unification


1: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
2: (b) ¬Coq(x2 ) ∨ Av(x2 )
3: subst :(2) ¬Coq(x1 ) ∨ Av(x1 ) σ1 [2] = {x2 /x1 }
4: reso :(1),(3) ¬Al(x1 ) ∨ ¬Coq(x1 )
5: subst :(4) ¬Al(x3 ) ∨ ¬Coq(x3 ) σ2 [4] = {x1 /x3 }

On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 237/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (5)

4 — Résolution classique (sans réfutation)


Sans la réfutation, pour prouver que le raisonnement est valide, il faut montrer
que (c) est une conséquence de (a) et (b). Avec la résolution, il faut donc
produire (c) à partir de (a) et (b).
H∞ = {α} pour les clauses (a), (b), et (c).

no source clause unification


1: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
2: (b) ¬Coq(x2 ) ∨ Av(x2 )
3: subst :(2) ¬Coq(x1 ) ∨ Av(x1 ) σ1 [2] = {x2 /x1 }
4: reso :(1),(3) ¬Al(x1 ) ∨ ¬Coq(x1 )
5: subst :(4) ¬Al(x3 ) ∨ ¬Coq(x3 ) σ2 [4] = {x1 /x3 }

On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 237/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (5)

4 — Résolution classique (sans réfutation)


Sans la réfutation, pour prouver que le raisonnement est valide, il faut montrer
que (c) est une conséquence de (a) et (b). Avec la résolution, il faut donc
produire (c) à partir de (a) et (b).
H∞ = {α} pour les clauses (a), (b), et (c).

no source clause unification


1: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
2: (b) ¬Coq(x2 ) ∨ Av(x2 )
3: subst :(2) ¬Coq(x1 ) ∨ Av(x1 ) σ1 [2] = {x2 /x1 }
4: reso :(1),(3) ¬Al(x1 ) ∨ ¬Coq(x1 )
5: subst :(4) ¬Al(x3 ) ∨ ¬Coq(x3 ) σ2 [4] = {x1 /x3 }

On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 237/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (5)

4 — Résolution classique (sans réfutation)


Sans la réfutation, pour prouver que le raisonnement est valide, il faut montrer
que (c) est une conséquence de (a) et (b). Avec la résolution, il faut donc
produire (c) à partir de (a) et (b).
H∞ = {α} pour les clauses (a), (b), et (c).

no source clause unification


1: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
2: (b) ¬Coq(x2 ) ∨ Av(x2 )
3: subst :(2) ¬Coq(x1 ) ∨ Av(x1 ) σ1 [2] = {x2 /x1 }
4: reso :(1),(3) ¬Al(x1 ) ∨ ¬Coq(x1 )
5: subst :(4) ¬Al(x3 ) ∨ ¬Coq(x3 ) σ2 [4] = {x1 /x3 }

On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 237/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (5)

4 — Résolution classique (sans réfutation)


Sans la réfutation, pour prouver que le raisonnement est valide, il faut montrer
que (c) est une conséquence de (a) et (b). Avec la résolution, il faut donc
produire (c) à partir de (a) et (b).
H∞ = {α} pour les clauses (a), (b), et (c).

no source clause unification


1: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
2: (b) ¬Coq(x2 ) ∨ Av(x2 )
3: subst :(2) ¬Coq(x1 ) ∨ Av(x1 ) σ1 [2] = {x2 /x1 }
4: reso :(1),(3) ¬Al(x1 ) ∨ ¬Coq(x1 )
5: subst :(4) ¬Al(x3 ) ∨ ¬Coq(x3 ) σ2 [4] = {x1 /x3 }

On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 237/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (5)

4 — Résolution classique (sans réfutation)


Sans la réfutation, pour prouver que le raisonnement est valide, il faut montrer
que (c) est une conséquence de (a) et (b). Avec la résolution, il faut donc
produire (c) à partir de (a) et (b).
H∞ = {α} pour les clauses (a), (b), et (c).

no source clause unification


1: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
2: (b) ¬Coq(x2 ) ∨ Av(x2 )
3: subst :(2) ¬Coq(x1 ) ∨ Av(x1 ) σ1 [2] = {x2 /x1 }
4: reso :(1),(3) ¬Al(x1 ) ∨ ¬Coq(x1 )
5: subst :(4) ¬Al(x3 ) ∨ ¬Coq(x3 ) σ2 [4] = {x1 /x3 }

On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 237/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Principe de résolution pour le calcul des prédicats (5)

4 — Résolution classique (sans réfutation)


Sans la réfutation, pour prouver que le raisonnement est valide, il faut montrer
que (c) est une conséquence de (a) et (b). Avec la résolution, il faut donc
produire (c) à partir de (a) et (b).
H∞ = {α} pour les clauses (a), (b), et (c).

no source clause unification


1: (a) ¬Av(x1 ) ∨ ¬Al(x1 )
2: (b) ¬Coq(x2 ) ∨ Av(x2 )
3: subst :(2) ¬Coq(x1 ) ∨ Av(x1 ) σ1 [2] = {x2 /x1 }
4: reso :(1),(3) ¬Al(x1 ) ∨ ¬Coq(x1 )
5: subst :(4) ¬Al(x3 ) ∨ ¬Coq(x3 ) σ2 [4] = {x1 /x3 }

On obtient en (5) la conlusion (c) que l’on souhaitait. On a donc prouvé que le
raisonnement était valide.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 237/260


Logique mathématique pour l’informatique
Chapitre 2. Logique des prédicats
Aspects déductifs et Herbrand

Propriétés importantes du calcul des prédicats


Théorème 8, de Gödel
Le calcul des prédicats muni de la résolution clausale et de
l’unification rendues possible par le théorème de Herbrand est
correct (|= A ⇒` A) et complet (` A ⇒|= A).

Indécidabilité du calcul des prédicats


Le calcul des prédicats est indécidable. Il n’existe pas d’algorithme
permettant de décider à coup sur (dans un temps raisonnable) si
une formule close est vraie ou fausse.

Décidabilité du calcul des prédicats restreint aux clauses de Horn


Un sous-ensemble de la logique des prédicats, les clauses de Horn
est cependant décidable. C’est ce qui a permis la mise en oeuvre de
système de déduction/preuve automatique tels que Prolog.
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 238/260
Logique mathématique pour l’informatique
Chapitre 3. PROLOG

Chapitre 3.

PROLOG

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 239/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Introduction

Plan : Chapitre 3. PROLOG

Introduction
Syntaxe
Principe de fonctionnement
Limites de logiques classiques

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 240/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Introduction

Une classe particulière de langages (1)

Langages impératifs
séquencement des opération totalement spécifié
contrôle total du flot d’exécution
objets et structures du langage multiples
syntaxe complexe mais riche (ou lourde :-))
exemples : Pascal, C, C+, C++, Java, ...
Langages fonctionnels
tout est fonction
base mathématique forte : lambda-calcul
contrôle d’exécution délégué à l’interprète
utilisation intensive de la récursivité
exemples : Lisp, Scheme, Haskell, ...

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 241/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Introduction

Une classe particulière de langages (1)

Langages impératifs
séquencement des opération totalement spécifié
contrôle total du flot d’exécution
objets et structures du langage multiples
syntaxe complexe mais riche (ou lourde :-))
exemples : Pascal, C, C+, C++, Java, ...
Langages fonctionnels
tout est fonction
base mathématique forte : lambda-calcul
contrôle d’exécution délégué à l’interprète
utilisation intensive de la récursivité
exemples : Lisp, Scheme, Haskell, ...

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 241/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Introduction

Historique

1930 Calcul des prédicats (J. Herbrand)


1965 Principe de résolution (J. A. Robinson)
1970 Utiliser la logique comme langage de programmation
clauses de Horn : R. Kowalski
Q-systèmes : A. Colmerauer
1972 Premier interprète PROLOG (A. Colmerauer et P. Roussel) -
Université d’Aix-Marseille
1977 Premier compilateur PROLOG (D. H. D. Warren) - Université
d’Édimbourg
1980 Projet japonais de 5e génération (flop)
1990 PROLOG évolue vers la Programmation par Contraintes

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 242/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Introduction

PROLOG A quoi ça sert ?

Principal langage de l’Intelligence Artificielle


Systèmes experts
Traitement du langage naturel
Faire intervenir le raisonnement..

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 243/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Introduction

Prolog pour l’industrie

Programmation par Contraintes


point de rencontre de diverses disciplines
programmation logique (et IA au sens large)
recherche opérationnelle (graphes, prog. Linéaire, . . . )
analyse numérique
Pour résoudre des problèmes combinatoires complexes
gestion de ressources (humaines ou non),
réseaux télécoms, . . .
Technologie française en plein boom !
ILOG SA, Cosytec (systèmes de PPC)
Bouygues SA, Bouygues Telecom, FT R&D (Orange Labs), Air
France, DGA, SNCF, . . .

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 244/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Introduction

Prolog dans l’industrie

Utilisé pour
prototyper très rapidement,
tester des idées . . .
Mais aussi pour développer des applications
Dassault Électronique
ECRC (Centre de recherche commun Bull, Siemens)
Orange
...

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 245/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Introduction

PROLOG (1)

PROgrammation LOGique
PROLOG : un exemple de langage de programmation logique
On n’écrit que des expressions logique dans le langage
Syntaxe très dépouillé
Calcul des prédicats restreint aux clauses de Horn
Paradigme de programmation
Nativement récursif (mais séquentialité possible)
Non-déterminisme
Forward-checking (profondeur d’abord) avec retour arrière et
coupure possible
Aussi un environnement d’exécution
Interpréteur de commande ou programme compilé stand-alone
ou bibliothèque
Non-déterminisme

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 246/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Introduction

PROLOG (2)

Principes de base
L’univers PROLOG est une base de connaissances décrivant
l’état du monde à l’aide de relations, les prédicats, portant
sur des entités, les termes.
On n’écrit que des clauses de Horn : au plus un littéral positif
un seul littéral positif : “fait” ;
un littéral positif et au moins un négatif : “règle” ;
pas de littéral positif : “requête” ou question posée PROLOG.
Les clauses de Horn permettent de :
Forcer le retour dans la base pour continuer la démonstration ;
Limiter le choix clause par clause.
Un prédicat particulier (=) correspond à l’unification.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 247/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Structure des programmes PROLOG (1)


Structure des programmes et clauses PROLOG, type propositionnel
“Fait” (un seul littéral positif) :
En PROLOG : a.
En logique : a.
“Règle” (un littéral positif et au moins un négatif)
En PROLOG : a :- b,c,d .
En logique :
(a ∨ ¬b ∨ ¬c ∨ ¬d) ⇔ (a ∨ ¬(b ∧ c ∧ d)) ⇔ (b ∧ c ∧ d ⇒ a)
“Requête” ou question à PROLOG. (aucun littéral positif) :
En PROLOG : ?- q.
En logique : ¬q. (car prouver ¬q à partir d’une base de
formules revient à prouver que q en est bien une conséquence.
L’unification est utilisée par Prolog pour trouver des instances de prédicats
correspondant à la question, pour faire correspondre requête et tête des clauses de la
base de connaissances.

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 248/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Structure des programmes PROLOG (1)

Structure des programmes et clauses PROLOG, type prédicat


“Fait” (un seul littéral positif) :
Socrate est un homme :
En logique : ∃x homme(x), en unifiant x avec a et en
interprétant a par socrate.
En PROLOG : homme(socrate)
“Règle” (un littéral positif et au moins un négatif)
Tout homme est mortel :
En logique : ∀x homme(x) ⇒ mortel(x)
En PROLOG : mortel(X) :- homme(X).
“Requête” ou question à PROLOG. (pas de littéral positif) :
Socrate est-il mortel ? :
En logique : ∃x mortel(x) ou mortel(a)
En PROLOG : ?- mortel(socrate).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 249/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Un premier programme PROLOG


Exemple — Parenté
% Faits
masculin(tom). % «paquet» de clauses
masculin(tim). % individus masculins
masculin(bob).
masculin(jim).

feminin(pam). % individus féminins


feminin(liz).
feminin(ann).
feminin(pat).

% Règles
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 250/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).←
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).
enfant(bob,tom).←
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).←
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).←
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).
masculin(jim).
Exemple
feminin(pam).
feminin(liz).
feminin(ann).
feminin(pat). Exemple
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).←
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann).
feminin(pat).
Exemple
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
enfant(bob,pam).
enfant(bob,tom). Exemple
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
enfant(bob,pam).←
enfant(bob,tom). Exemple
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
enfant(bob,pam).
enfant(bob,tom).← Exemple
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom). Exemple
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom). Exemple
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
enfant(bob,tom).
enfant(liz,tom).← Exemple
enfant(ann,bob).
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob). Exemple
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob). Exemple
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob).← Exemple
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob). Exemple
enfant(pat,bob).←
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob). Exemple
enfant(pat,bob).
enfant(tim,liz).←
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob). Exemple
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).←

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
enfant(liz,tom).
enfant(ann,bob). Exemple
enfant(pat,bob).
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X)

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).←
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom).← Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim).← ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob).← Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).←
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam).← Echec de ‘X=pam’ Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).← unif. : X=pam
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam). backtrack
X = liz ;
enfant(bob,tom).
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).←
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).← unif. : X=tom
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).← unif. : X=tom
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
X = tom ?

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Premières requêtes

Connaissances Exemple
masculin(tom). Est-ce que pat est un enfant de bob ?
masculin(tim). ?- enfant(pat,bob).
masculin(bob). Yes.
masculin(jim).
feminin(pam). Exemple
feminin(liz).
feminin(ann). Quels sont les enfants de tom ?
feminin(pat). ?- enfant(X,tom).
X = bob ;
enfant(bob,pam).
X = liz ;
enfant(bob,tom).← unif. : X=tom
No.
enfant(liz,tom).
enfant(ann,bob).
enfant(pat,bob). Exemple
enfant(tim,liz).
Qui est le père de bob ?
enfant(jim,pat).
?- enfant(bob,X), masculin(X).
X = tom ?

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 251/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Écriture de prédicats (1)

Prédicat père généralisé


On écrit en général des prédicats, que l’on ajoute dans la base
de connaissance PROLOG. On essaie de les rendre générique,
pour que l’unification soit plus large et leur couverture aussi.
Par exemple, au lieu de modéliser : “Qui est le père de bob ?”,
on va plutôt représenter Qui est le père de Y ? :
pere(X,Y) :-
enfant(Y,X),
masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 252/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Écriture de prédicats (1)

Prédicat père généralisé


On écrit en général des prédicats, que l’on ajoute dans la base
de connaissance PROLOG. On essaie de les rendre générique,
pour que l’unification soit plus large et leur couverture aussi.
Par exemple, au lieu de modéliser : “Qui est le père de bob ?”,
on va plutôt représenter Qui est le père de Y ? :
pere(X,Y) :-
enfant(Y,X),
masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 252/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Écriture de prédicats (1)

Prédicat père généralisé


On écrit en général des prédicats, que l’on ajoute dans la base
de connaissance PROLOG. On essaie de les rendre générique,
pour que l’unification soit plus large et leur couverture aussi.
Par exemple, au lieu de modéliser : “Qui est le père de bob ?”,
on va plutôt représenter Qui est le père de Y ? :
pere(X,Y) :-
enfant(Y,X),
masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 252/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Écriture de prédicats (1)

Prédicat père généralisé


On écrit en général des prédicats, que l’on ajoute dans la base
de connaissance PROLOG. On essaie de les rendre générique,
pour que l’unification soit plus large et leur couverture aussi.
Par exemple, au lieu de modéliser : “Qui est le père de bob ?”,
on va plutôt représenter Qui est le père de Y ? :
pere(X,Y) :-
enfant(Y,X),
masculin(X).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 252/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Syntaxe

Écriture de prédicats (2)

Exercice — Écrire les prédicats suivants


mere/2
grand-pere/2
frere/2
tante/2
cousin/2

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 253/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement

Déclarativité

PROLOG est un langage déclaratif


on spécifie les propriétés du résultat du programme
on ne spécifie pas le processus pour arriver à ce résultat
(aspect opérationnel)
Intérêts
facilité de compréhension
facilité d’écriture

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 254/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement

Retour sur le retour arrière (1)

Connaissances
Frere/2
masculin(tom).
masculin(tim). Considérons la requête suivante :
masculin(bob).
masculin(jim). Est-ce que bob est le frère de liz ?
feminin(pam).
feminin(liz).
?- frere(bob,liz).
feminin(ann).
feminin(pat).
enfant(bob,pam).
enfant(bob,tom).
Backtrack
enfant(liz,tom).
enfant(ann,bob). Le mécanisme de
enfant(pat,bob).
enfant(tim,liz). retour-arrière (backtrack)
enfant(jim,pat).
frere(X,Y) :-
assure la complétude de la
masculin(X), recherche
enfant(X,Z),
enfant(Y,Z).
Demander une nouvelle
solution revient à provoquer
un échec fictif pour forcer le
backtrack
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 255/260
Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement

Retour sur le retour arrière (1)

Connaissances
Frere/2
masculin(tom).
masculin(tim). Considérons la requête suivante :
masculin(bob).
masculin(jim). Est-ce que bob est le frère de liz ?
feminin(pam).
feminin(liz).
?- frere(bob,liz).
feminin(ann).
feminin(pat).
enfant(bob,pam).
enfant(bob,tom).
Backtrack
enfant(liz,tom).
enfant(ann,bob). Le mécanisme de
enfant(pat,bob).
enfant(tim,liz). retour-arrière (backtrack)
enfant(jim,pat).
frere(X,Y) :-
assure la complétude de la
masculin(X), recherche
enfant(X,Z),
enfant(Y,Z).
Demander une nouvelle
solution revient à provoquer
un échec fictif pour forcer le
backtrack
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 255/260
Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement

Retour sur le retour arrière (1)

Connaissances
Frere/2
masculin(tom).
masculin(tim). Considérons la requête suivante :
masculin(bob).
masculin(jim). Est-ce que bob est le frère de liz ?
feminin(pam).
feminin(liz).
?- frere(bob,liz).
feminin(ann).
feminin(pat).
enfant(bob,pam).
enfant(bob,tom).
Backtrack
enfant(liz,tom).
enfant(ann,bob). Le mécanisme de
enfant(pat,bob).
enfant(tim,liz). retour-arrière (backtrack)
enfant(jim,pat).
frere(X,Y) :-
assure la complétude de la
masculin(X), recherche
enfant(X,Z),
enfant(Y,Z).
Demander une nouvelle
solution revient à provoquer
un échec fictif pour forcer le
backtrack
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 255/260
Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement

Propriétés (1)

la recherche réalisée par PROLOG est une recherche en


profondeur d’abord
on peut obtenir plusieurs solutions pour une même requête :
non-déterminisme
un prédicat peut servir à autre chose que ce pour quoi il a été
écrit : réversibilité
les seuls résultats possibles sont yes ou no : pas de fonction,
les réponses sont obtenues par unification uniquement

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 256/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement

Récursivité

Lien de parenté
Essayons de définir l’ancestralité : Écrire le prédicat ascendant/2 :
ascendant(X,Y) :-
enfant(Y,X). Condition d’arrêt en premier
ascendant(X,Z) :-
enfant(Z,Y), Information discrimante en premier
ascendant(X,Y).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 257/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement

Récursivité

Lien de parenté
Essayons de définir l’ancestralité : Écrire le prédicat ascendant/2 :
ascendant(X,Y) :-
enfant(Y,X). Condition d’arrêt en premier
ascendant(X,Z) :-
enfant(Z,Y), Information discrimante en premier
ascendant(X,Y).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 257/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement

Récursivité

Lien de parenté
Essayons de définir l’ancestralité : Écrire le prédicat ascendant/2 :
ascendant(X,Y) :-
enfant(Y,X). Condition d’arrêt en premier
ascendant(X,Z) :-
enfant(Z,Y), Information discrimante en premier
ascendant(X,Y).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 257/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement

Récursivité

Lien de parenté
Essayons de définir l’ancestralité : Écrire le prédicat ascendant/2 :
ascendant(X,Y) :-
enfant(Y,X). Condition d’arrêt en premier
ascendant(X,Z) :-
enfant(Z,Y), Information discrimante en premier
ascendant(X,Y).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 257/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement

Récursivité

Lien de parenté
Essayons de définir l’ancestralité : Écrire le prédicat ascendant/2 :
ascendant(X,Y) :-
enfant(Y,X). Condition d’arrêt en premier
ascendant(X,Z) :-
enfant(Z,Y), Information discrimante en premier
ascendant(X,Y).

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 257/260


Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Principe de fonctionnement

PROLOG = logique mathématique


Soit une relation binaire r. On veut définir la fermeture transitive
de r. Comparer :

Récursion droite Récursion gauche


fermeture(X,Y) :- r(X,Y). fermeture(X,Y) :- r(X,Y).
fermeture(X,Z) :- fermeture(X,Z) :-
r(X,Y), fermeture(Y,Z),
fermeture(Y,Z). r(X,Y).

PROLOG permet d’opérationnaliser la logique. Les formules logique


sous Prolog sont donc séquentialisées à l’exécution, pour des
question de performance. Attention à la procédure de
recherche ! ! !
Règle de sélection du but : le plus à gauche
Règle de sélection de la clause : la première
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 258/260
Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Limites de logiques classiques

Limites de logiques classiques


Propriétés de la logique classique
la logique classique est binaire
la logique classique est monotone

Monotonie :
Ajouter un fait à un ensemble de règles n’enlève pas de
déductions de cet ensemble.
Intuitivement : ajouter une nouvelle connaissance à un système
ne fera qu’augmenter les déductions faites à partir de ce
système.
Les logiques monotones ne peuvent faire de la révision de
connaissance.
Exemple typique de révision de connaissance
vole(X) :- oiseau(X), not(pinguin(X)). oiseau(titi).
P. Clemente - INSA Centre Val de Loire Dpt STI 3A 259/260
Logique mathématique pour l’informatique
Chapitre 3. PROLOG
Limites de logiques classiques

Limites de logiques classiques (2)

Deux classes de logiques non classiques


extensions de la logique classique :
logiques modales
logiques rivales :
logiques multivalentes
logiques floues

P. Clemente - INSA Centre Val de Loire Dpt STI 3A 260/260

You might also like