You are on page 1of 124

Logique pour informatique

Hicham Bensaid
hicham.bensaid@gmail.com

Filière Informatique

H. Bensaid (Filière Informatique) Logique pour informatique 1 / 124


Also a student whose college curriculum includes some ma-
thematics has a singular opportunity. This opportunity is lost, of
course, if he regards mathematics as a subject in which he has
to earn so and so much credit and which he should forget after
the final examination as quickly as possible. The opportunity may
be lost even if the student has some natural talent for mathema-
tics because he, as everybody else, must discover his talents and
tastes ; he cannot know that he likes raspberry pie if he has never
tasted raspberry pie. He may manage to find out, however, that a
mathematics problem may be as much fun as a crossword puzzle,
or that vigorous mental work may be an exercise as desirable as
a fast game of tennis. Having tasted the pleasure in mathematics
he will not forget it easily and then there is a good chance that
mathematics will become something for him : a hobby, or a tool of
his profession, or his profession, or a great ambition.
George PÓLYA, How To Solve It.

H. Bensaid (Filière Informatique) Logique pour informatique 2 / 124


Plan

Introduction
Préliminaires
Logique propositionnelle
Logique du premier ordre
Traitement de l’égalité
Logiques non classiques (modale et temporelle)

H. Bensaid (Filière Informatique) Logique pour informatique 3 / 124


Bibliographie

Cours largement fondé sur le livre (certains passages y sont repris


littéralement) :
Logique pour l’informatique et pour l’intelligence artificielle, R.
Caferra.
et sur le polycopié :
Éléments de Logique pour le cours de 2ème année Ensimag :
Fondements de Logique pour l’Informatique, Thierry Boy de la Tour et
Mnacho Echenim. Année 2017-2018.
URL : http://lig-membres.imag.fr/mechenim/wp-
content/uploads/sites/219/2016/05/PolycopieLogique.pdf
Un autre livre également très bien :
First-order logic and automated theorem proving, M. Fitting.

H. Bensaid (Filière Informatique) Logique pour informatique 4 / 124


Première partie I

Introduction

H. Bensaid (Filière Informatique) Logique pour informatique 5 / 124


Logique, fondements de l’informatique et applications

“Computer programming is an exact science, in that all the properties of a pro-


gram and all the consequences of executing it can, in principle, be found out from
the text of the program itself by means of purely deductive reasoning”
“computers are mathematical machines and computer programs are mathemati-
cal expressions”

C.A.R. Hoare.

2 exemples de concepts “typiquement informatiques”, inventés par des


logiciens :
Règle de production (Post)
Langage formel (Frege)

H. Bensaid (Filière Informatique) Logique pour informatique 6 / 124


Logique, fondements de l’informatique et applications

L’ordinateur actuel a comme base l’ordinateur abstrait de Turing


proposé pour résoudre un problème mathématique (logique) posé par
Hilbert
mais . . .
“If it should turn out that the basic logics of a machine designed for the numerical
solution of differential equations coincide with the logics of a machine intended to
make bills for a department store, I would regard this as the most amazing coincidence
that I have ever encountered.”
H. Aiken (1956).

Logiques non classiques (modale, temporelle, . . . )


Ontologies (web sémantique par exemple)
Indécidabilité de la LPO et problème de l’arrêt
NP-complétude du problème de la consistance (satisfaisabilité,
validité) du calcul propositionnel classique (SAT)

H. Bensaid (Filière Informatique) Logique pour informatique 7 / 124


Logique et métier d’ingénieur informaticien

Notions partagées :
proposition, définition, sémantique, inférence, langage/métalangage,
intention, intension, extension, sous-classe de formules, modèle
La logique comme langage de spécification, vérification,
développement logiciel
Sémantique ⇒ compilation.
L’inférence pour expliciter l’information ⇒ algorithmique.
L’intention est liée à la modélisation de systèmes (et non simplement
des programmes) où il faut modéliser aussi l’environnement (y compris
les utilisateurs).
...

H. Bensaid (Filière Informatique) Logique pour informatique 8 / 124


Logique et métier d’ingénieur informaticien

Notions partagées :
proposition, définition, sémantique, inférence, langage/métalangage,
intention, intension, extension, sous-classe de formules, modèle
L’intension et l’extension utilisées, dans des langages comme Datalog
(étudiés en logique et en bases de données).
La méthode de Davis et Putnam, utilisée (par exemple) en validation
des systèmes.
La notion (algorithme) de subsomption est utilisée, dans les langages
de représentation des connaissances.
La logique et les bases de données : Une BD relationnelle = Structure
du 1er ordre et LPO langage de requêtes . . .
...

H. Bensaid (Filière Informatique) Logique pour informatique 9 / 124


Logique et métier d’ingénieur informaticien

Liens avec des applications récentes :


systèmes multi-agents : robotique, internet, IoT, protocoles de sécurité
...
Configurations complexes ⇒ outils pour raisonnement formel
Domaines de l’économie et des finances,
Domaine du digital . . .
“The semantic web is . . . an extension of the current one. [. . . ] For the
semantic web to function, computers must have access to structured collections
of information and sets of inference rules that they use to conduct automated
reasoning.”
Tim Berners-Lee, James Hendler and Ora Lassila
Scientific American : Feature Article : The Semantic Web : May 2001.

Traitement automatique du langage naturel (IA, Chatbots, . . . )


...

H. Bensaid (Filière Informatique) Logique pour informatique 10 / 124


Logique et métier d’ingénieur informaticien

Autres considérations liées aux problèmes techniques dans la


programmation de systèmes informatiques :
Un (contre-)exemple ⇒ prouver qu’un programme n’est pas correct,
mais (en général) 6⇒ prouver qu’un programme est correct
Exemple : Ratage de la sonde Mariner 1 vers Venus (juin 1962)
(instruction proche syntaxiquement correcte mais erronée . . . )
⇒ Techniques logiques développées pour
prouver la correction des programmes,
détecter des erreurs de programmation,
construire des programmes satisfaisant une certaine spécification.
Ces techniques peuvent, (dans une bonne mesure), être automatisées.

H. Bensaid (Filière Informatique) Logique pour informatique 11 / 124


Logique et métier d’ingénieur informaticien

Pour raisonner mécaniquement sur un programme il faut : une


sémantique formelle, une théorie logique formelle et un démonstrateur
automatique de théorèmes pour cette théorie.
Vérification des spécifications : preuve des propriétés des spécifications
plutôt que la preuve des propriétés des programmes eux-mêmes.
Vérification des protocoles de sécurité
Theorem proving (logique classique) et model checking (logique non
classique)

H. Bensaid (Filière Informatique) Logique pour informatique 12 / 124


La logique est un cours passerelle

Les sujets en logique sont importants pour de nombreux cours :


Informatique : Architecture des ordinateurs, Structures de données,
Algorithmes, Langages de programmation, Compilateurs, Sécurité
informatique, Bases de données, Intelligence artificielle, Calculabilité,
...
Mathématiques : théorie des ensembles, théorie des nombres, algèbre
abstraite, combinatoire, théorie des graphes, . . .
Ces concepts peuvent être également utiles dans les domaines continus
des mathématiques.
Autres disciplines : ces concepts peuvent être utiles dans les cours de
philosophie, économie, linguistique . . .

H. Bensaid (Filière Informatique) Logique pour informatique 13 / 124


Deuxième partie II

Préliminaires

H. Bensaid (Filière Informatique) Logique pour informatique 14 / 124


Inférences et logiques

Objectif : comprendre comment :


Engendrer (inférer) des énoncés à partir d’autres énoncés
Attribuer une valeur de vérité aux énoncés (logiques)
Relier ces deux notions
Vérifier qu’un raisonnement (formule, programme, . . . ) est correct

H. Bensaid (Filière Informatique) Logique pour informatique 15 / 124


C’est quoi la logique ?

Impossible (pour le moment) de donner une définition formelle (on y


reviendra plus tard)
Pour être bien comprise, la réponse exigerait du recul sur le domaine
que l’on commence à étudier
Exemple : Essayer de comprendre de quoi traitent les mathématiques,
à partir de la définition : les mathématiques, science de la quantité et
de l’espace.

H. Bensaid (Filière Informatique) Logique pour informatique 16 / 124


La logique et les paradoxes
Paradoxe du menteur : je suis en train de mentir,
Cette phrase est fausse,
(Extrait de Don Quichotte de Michel Cervantès)
Un soldat reçoit l’ordre de poser à chaque personne qui arrive à un
pont sur une rivière, la question :
( * ) « Que venez-vous faire ici ? » -
Si la personne dit la vérité, il doit la laisser traverser le pont.
Si elle ment, il doit la faire mourir par pendaison dans la potence qui
est à côté du pont.
Quelqu’un arrive et à la question ( * ) répond, en montrant la potence
à côté du pont : « Je viens mourir sur cette potence »

La
(
règle Toute règle a des exceptions
La phrase ci-dessous est fausse.
La phrase ci-dessus est vraie.
H. Bensaid (Filière Informatique) Logique pour informatique 17 / 124
Les paradoxes et la théorie des ensembles

Les paradoxes qui ont eu le plus d’impact sont peut-être ceux qui
impliquent la théorie des ensembles :
probablement à cause de l’importance de la théorie des ensembles en
mathématiques, et en particulier dans les fondements des
mathématiques.
Bolzano introduit (en 1847) la notion “d’ensemble” pour la première
fois :
Un ensemble est une collection dont l’ordre de ses éléments n’est pas
pertinent et rien d’essentiel n’est changé en changeant seulement
l’ordre.
Cantor développa la théorie (naïve) des ensembles :
Un ensemble (selon Cantor) est toute collection d’objets définis et
différents, de notre intuition ou de notre pensée .
Mais . . .

H. Bensaid (Filière Informatique) Logique pour informatique 18 / 124


Les paradoxes et la théorie des ensembles

. . . admettre n’importe quelle propriété pour définir un ensemble


peut-être dangereux

Paradoxe de Russell (1902)


Soit B l’ensemble de tous les ensembles A tq A n’est pas un élément de A
(c’est-à-dire l’ensemble de tous les ensembles qui ne se contiennent pas
eux-mêmes).

⇒ Axiomes ZFC
Théorie unificatrice des mathématiques modernes (utile également
pour la logique)

H. Bensaid (Filière Informatique) Logique pour informatique 19 / 124


La théorie des ensembles et l’informatique

Usage intensif en informatique des entiers, nombres réels, tableaux


(fonctions), listes, mots, pointeurs . . .
Ces objets sont de nature mathématique
Ecrire un algorithme = décrire une infinité de calculs possibles
Les mathématiques sont le seul outil rigoureux pour penser (et
raisonner sur) l’infini.
⇒ La théorie des ensembles

H. Bensaid (Filière Informatique) Logique pour informatique 20 / 124


Les paradoxes dans l’arithmétique et dans la théorie des
ensembles

Paradoxe de Berry (Russell 1906)


Soit A : ensemble de tous les naturels qui peuvent être définis en français
par une phrase contenant au plus mille caractères (lettres ou symboles de
séparation). A est donc fini. Il existe par conséquent des naturels
n’appartenant pas à A . La phrase : “ n est le plus petit naturel qui ne peut
pas être défini au moyen d’une phrase en français contenant au plus mille
caractères” contient moins de mille caractères et définit un naturel n . Donc
n appartient à A . D’autre part, n n’appartient pas à A d’après la
définition de n .

Problème de l’arrêt (très important dans les fondements de


l’informatique)
Problème ici : mélange de la théorie et de la méta-théorie

H. Bensaid (Filière Informatique) Logique pour informatique 21 / 124


“Définitions” de la logique

Quelques définitions tous publics de logique


Manière de raisonner, telle qu’elle s’exerce en fait, conformément ou
non aux règles de la logique formelle.
Raisonnement abstrait, schématique, souvent opposé à la complexité
du réel.
Enchaînement cohérent d’idées, manière de raisonner juste, suite dans
les idées.
Raisonnement : suite de propositions liées les unes aux autres selon
des principes déterminés et aboutissant à une conclusion.
Étymologiquement :
logique (XIIIe s.) : du grec « art du raisonnement » ;
raisonner : raison → compter → calcul → faculté de calculer ou de
raisonner.

H. Bensaid (Filière Informatique) Logique pour informatique 22 / 124


“Définitions” de la logique

Quelques définitions un peu plus techniques


La logique étudie ce qui s’ensuit de quoi.
La logique étudie les ensembles cohérents d’opinions (ou
d’hypothèses).
La logique est une science des vérités.
La logique est une science des déductions.
La logique est une manière d’évaluer des arguments.
La logique étudie les méthodes et principes utilisés pour distinguer le
raisonnement correct du raisonnement incorrect (ou fallacieux).
Pour une définition formelle, il faut encore patienter . . .

H. Bensaid (Filière Informatique) Logique pour informatique 23 / 124


Quelques notions nécessaires

Théorie des langages :


Vocabulaire : n’importe quel ensemble, ses éléments sont appelés
symboles ou lettres
Mot : séquence finie de lettres
Langage : ensemble de mots
Concaténation
Substitution

H. Bensaid (Filière Informatique) Logique pour informatique 24 / 124


Quelques notions nécessaires

Notions de calculabilité (définies sur des langages)

Définition (Fonction calculable)


Une fonction partielle f : L 1 × . . . × L n → L est calculable s’il existe un
programme (ou machine de Turing) qui calcule f (m1 , . . . , mn ) en un temps
fini à partir des mots m1 , . . . , mn lorsque f (m1 , . . . , mn ) existe et qui ne
termine pas lorsque f (m1 , . . . , mn ) n’est pas définie.

Définition (Relation récursive (ou calculable))


Une relation sur des langages (ou simplement un langage) est dite récursive
ou décidable si sa fonction caractéristique est calculable.

H. Bensaid (Filière Informatique) Logique pour informatique 25 / 124


Quelques notions nécessaires

Définition (Relation semi-décidable)


Une relation R ⊆ L 1 × . . . × . . . L n est semi-décidable
© ª
s’il existe une fonction
partielle calculable f : L 1 × . . . × L n → v, f telle que :
∀ (m 1 , . . . , m n ) ∈ L 1 × . . . × L n , f (m 1 , . . . , m n ) = v ssi (m 1 , . . . , m n ) ∈ R.

Autrement dit, il existe un programme qui termine toujours si la réponse


est v et qui donne toujours une réponse correcte s’il termine. Il est donc
possible que ce programme ne termine pas si (m1 , . . . , mn ) 6∈ R .

Définition (Relation récursivement énumérable)


Une relation R est dite récursivement énumérable s’il existe une fonction
totale calculable f : N → L 1 × . . . × . . . L n telle que f (N) = R .

Cette notion est en fait équivalente à la précédente, nous utiliserons l’une


ou l’autre indifféremment.

H. Bensaid (Filière Informatique) Logique pour informatique 26 / 124


Troisième partie III

Inférences et Logiques

H. Bensaid (Filière Informatique) Logique pour informatique 27 / 124


Aux origines de la logique

L’étude de la Logique a été initiée par Aristote


Objectif : chercher une façon systématique de démasquer les faux
raisonnements des sophistes.
Sophistes : orateurs très cultivés et d’une grande éloquence
leur objectif (d’après Platon) : convaincre l’auditoire de leurs propos,
que ceux-ci soient vrais ou non.
Le rôle des philosophes était la recherche de la vérité, celui des
sophistes aurait été la recherche de la persuasion.
Objectif d’Aristote : chercher à distinguer les raisonnements corrects
de ceux qui ne l’étaient pas,
⇒ définir des syllogismes : exemples de raisonnements corrects classés
selon leur forme (19 formes).

H. Bensaid (Filière Informatique) Logique pour informatique 28 / 124


Plan

1 Systèmes d’inférence

2 Logiques

3 Logique propositionelle
Un système d’inférence pour la LP
Forme clausale
Preuves
Calcul de résolution
Méthode DPLL

4 Logique du premier ordre


Syntaxe et sémantique
Calcul de résolution

H. Bensaid (Filière Informatique) Logique pour informatique 29 / 124


Des syllogismes aux règles d’inférence

Un des syllogismes les plus connus peut s’énoncer de la façon suivante : à


partir de propositions de la forme :
tout ce qui est A est B
C est A
on peut en déduire la proposition C est B ,
où A et B dénotent des adjectifs et C dénote un groupe nominal
quelconque ; c’est le syllogisme barbara.

tout ce qui est humain est mortel


Socrate est humain
On peut déduire donc que
Socrate est mortel.

H. Bensaid (Filière Informatique) Logique pour informatique 30 / 124


Des syllogismes aux règles d’inférence

Les règles d’inférences sont une généralisation moderne des syllogismes

Définition (Règle d’inférence)


Soient V un ensemble au plus dénombrable et F un langage récursif non
vide sur le vocabulaire V , dont les éléments sont appelés formules. Une
règle d’inférence sur F est toute relation récursive R ⊆¡ F ∗ × F , où¢
F ∗ = n∈N F n . Une inférence par R est tout élément p 1 , . . . , p n , c ∈ R ; les
S

p i sont les prémisses (et non les premices), c est la conclusion de cette
inférence. On utilise la notation suivante pour représenter cette inférence :
p1, . . . , pn
c R.

Le syllogisme barbara peut être écrit comme une règle d’inférence :

"tout ce qui est A est B " "C est A "


bar bar a
C est B

H. Bensaid (Filière Informatique) Logique pour informatique 31 / 124


Système d’inférence et déductions

Définition (Système d’inférence)


Un système d’inférence est un triplet S = (V, F , R), où F est un langage
récursif sur le vocabulaire au plus dénombrable V , et R est un ensemble
fini de règles d’inférence sur F .
Toute inférence par une règle dans R est appelée inférence dans S . On
appelle axiome de S toute formule a telle que ∃R ∈ R, où a ∈ R .
Autrement dit, (a) est une inférence sans prémisse, qui peut donc s’écrire

a R.

H. Bensaid (Filière Informatique) Logique pour informatique 32 / 124


Système d’inférence et déductions

Définition (Déduction, conséquence)


Une S -déduction à partir de H ⊆ F est une séquence finie non vide de
formules ( f i )ni=1 (pour n ∈ N) telle que pour tout 1 ≤ i ≤ n , au moins une
des conditions suivantes est vérifiée :
fi ∈ H ,
il existe m prémisses f i 1 , . . . , f i m (où m ∈ N) telles que i 1 < i , . . . , i m < i
et f i 1 , . . . , f i m , f i est une inférence dans S .
¡ ¢

Cette déduction est de longueur n , les éléments de H sont les hypothèses


de la déduction et f n en est la conclusion.
f ∈ F est une conséquence de H dans S (ou f se déduit de H dans
S ) et noté H `S f s’il existe une S -déduction ( f i )ni=1 à partir de H
qui contient f (i.e. ∃i tel que f i = f ).
Pour C ⊆ F , on écrit H `S C si pour toute formule f ∈ C on a
H `S f .

H. Bensaid (Filière Informatique) Logique pour informatique 33 / 124


Système d’inférence et déductions

Définition (Preuve, théorème)


Soit S -déduction à partir de H ⊆ F .
Une S -preuve est une S -déduction à partir de ; (sans hypothèses).
On écrit `S f pour ; `S f . f est appelée S -théorème.
Si `S C alors C est un ensemble de théorèmes.

Théorème
1 L’ensemble des preuves est récursif.
2 L’ensemble des théorèmes est récursivement énumérable.

H. Bensaid (Filière Informatique) Logique pour informatique 34 / 124


Système d’inférence et déductions

Définition
Soit H ⊆ F un ensemble récursif, on note S H le système d’inférence
suivant : S H = (V, F , R ∪ {H }) (on ajoute les éléments de H comme
axiomes de S H .

Proposition
Étant donné un ensemble H récursif, l’ensemble des déductions à partir de
H dans S est l’ensemble des preuves dans S H .

Corollaire
L’ensemble des conséquences de H dans S est l’ensemble des théorèmes
de S H . Donc, si H est récursif alors f ∈ F |H `S f est récursivement
© ª

énumérable.

H. Bensaid (Filière Informatique) Logique pour informatique 35 / 124


Plan

1 Systèmes d’inférence

2 Logiques

3 Logique propositionelle
Un système d’inférence pour la LP
Forme clausale
Preuves
Calcul de résolution
Méthode DPLL

4 Logique du premier ordre


Syntaxe et sémantique
Calcul de résolution

H. Bensaid (Filière Informatique) Logique pour informatique 36 / 124


De la syntaxe et de la sémantique

Déductions = manipulations syntaxiques (sans signification).


Objectif : capturer les raisonnements corrects
Raisonnement correct ≈ déduction dont la conclusion est
nécessairement vraie.
Mais c’est quoi vrai ?
La vérité dépend du contexte.
⇒ le sens de certains mots est indéterminé, (ou variable)
Pour simplifier, nous allons ignorer les mots et leurs sens en supposant
une relation directe entre les contextes et la véracité des formules.
En logique, les contextes sont appelés des interprétations.

H. Bensaid (Filière Informatique) Logique pour informatique 37 / 124


Logique : définitions

Définition (Logique)
Une logique est un quadruplet L = (V, F , I , |=L ), où
F est un langage récursif sur le vocabulaire V , ses éléments sont
appelés formules,
I est un ensemble dont les éléments sont appelés interprétations,
|=L est une relation binaire dans I ¡× F¢, dite relation de satisfaction.
(on note I |=L f pour signifier que I , f ∈|=L , I ∈ I et f ∈ F ).
I |=L f : f est vraie dans I , I satisfait f et I est un modèle de f .
I 6|=L f : f est fausse dans I , I ne satisfait pas f et I est un
contre-modèle de f .

H. Bensaid (Filière Informatique) Logique pour informatique 38 / 124


Logique : définitions

Définition (Logique - suite)


La définition d’une logique L = (V, F , I , |=L ), peut être étendue :
Extension de |=L aux ensembles de formules : pour E ⊆ F et I ∈ I ,
I |=L E si I |=L f pour tout f ∈ F
© ª
En particulier,I |=L f ssi I |=L f .
On appelle système d’inférence pour L tout système S = (V, F , R) sur le
même langage de formules.

H. Bensaid (Filière Informatique) Logique pour informatique 39 / 124


Conséquence logique, correction

Définition (Conséquence logique, correction)


Soient L = (V, F , I , |=L ) une logique, c ∈ F et C , H ⊆ F .
c est une conséquence logique de H , et on note H |=L c , si pour
toute interprétation I ∈ I , I |=L H entraîne I |=L c .
Si S est un système d’inférence pour L , une déduction H `S c est
dite correcte pour L si H |=L c . On dit que S est correct pour L si
toute inférence dans S est correcte pour L .
H |=L C si H |=L c pour tout c ∈ C .
h |=L c pour {h} |=L c .

H. Bensaid (Filière Informatique) Logique pour informatique 40 / 124


Validité, équivalence logique

Définition (Validité, équivalence logique)


Soient L = (V, F , I , |=L ) une logique, c, h∈F et C , D ⊆ F .
On note |=L c pour ; |=L c et on dit que c est valide dans L . De
même on note |=L C pour ; |=L C .
h et c sont logiquement équivalents ssi h |=L c et c |=L h , et on note
h ≡L c .
C et D sont logiquement équivalents ssi C |=L D et D |=L C , et on
note C ≡L D .

H. Bensaid (Filière Informatique) Logique pour informatique 41 / 124


Relation entre syntaxe et sémantique

Proposition
Si S est correct pour L alors tout théorème de S est valide pour L .

Proposition
Si S est correct pour L alors toute déduction dans S est correcte pour
L.

Il suffit donc que les règles d’inférence soient correctes pour que les
raisonnements le soient.

H. Bensaid (Filière Informatique) Logique pour informatique 42 / 124


Sémantique : quelques définitions

Définition (Satisfaisabilité, insatisfaisabilité)


Une formule f ∈ F (resp. un ensemble E de formules) est satisfaisable s’il
existe I ∈ I tel que I |=L f (resp. I |=L E ). Sinon, f (resp. E ) est
insatisfaisable.

Définition (Logique admettant une négation)


Une logique L admet une négation s’il existe un symbole ¬ ∈ V tel que ¬ f
est une formule ssi f en est une, et I |=L ¬ f ssi I 6|=L f pour tout I ∈ I .
Proposition
Si L a une négation ¬, alors toute formule f ∈ F est insatisfaisable
ssi ¬ f est valide.
Si L a une négation ¬, pour tout H ⊆ F et c ∈ F , on a H |=L c ssi
H ∪ {¬c} est insatisfaisable.
C’est la preuve par l’absurde.

H. Bensaid (Filière Informatique) Logique pour informatique 43 / 124


A propos de la correction (et du lien avec la validité)

Significations intuitives de la correction :


l’ensemble des théorèmes est inclus dans l’ensemble des formules
valides,
à partir de n’importe quelles hypothèses l’ensemble des formules qui
s’en déduisent en sont des conséquences logiques.
Un système d’inférence correct permet donc d’explorer les vérités
universelles ainsi que les conséquences logiques d’un ensemble
d’hypothèses H , (i.e. les vérités qui ne sont universelles que dans
l’ensemble des modèles de H ).
L’exploration n’est pas nécessairement exhaustive :
l’ensemble des théorèmes peut être plus petit que l’ensemble des
formules valides.
Dans certaines logiques L , il se peut même que dans tout système
d’inférence S correct pour L , il existe une formule f valide dans L
qui n’est pas un théorème de S .

H. Bensaid (Filière Informatique) Logique pour informatique 44 / 124


Complétude

Définition (Complétude, complétude forte)


S est complet pour L si toutes les formules valides pour L sont des
théorèmes de S . S est fortement complet pour L si pour tout H ⊆ F ,
toute conséquence logique de H se déduit de H dans S .
Une logique qui n’admet pas de système d’inférence correct et complet est
dite incomplète.

La complétude est une conséquence de la complétude forte et la


réciproque est souvent facile à établir (grâce à certaines propriétés de
L ).
Pour une logique donnée, objectif :
trouver un système d’inférence correct et complet (s’il en existe un),
cela permet de réduire la validité à la prouvabilité.

H. Bensaid (Filière Informatique) Logique pour informatique 45 / 124


Complétude

Mais la complétude d’un système d’inférence est souvent bien plus


difficile à établir que sa correction.
À plus forte raison l’incomplétude d’une logique est souvent très
difficile à prouver, mais on peut utiliser le résultat suivant, qui illustre
à nouveau la proximité de la logique avec l’informatique

Proposition
Si l’ensemble des formules valides de L n’est pas récursivement
énumérable, alors L est incomplète.

H. Bensaid (Filière Informatique) Logique pour informatique 46 / 124


Plan

1 Systèmes d’inférence

2 Logiques

3 Logique propositionelle
Un système d’inférence pour la LP
Forme clausale
Preuves
Calcul de résolution
Méthode DPLL

4 Logique du premier ordre


Syntaxe et sémantique
Calcul de résolution

H. Bensaid (Filière Informatique) Logique pour informatique 47 / 124


Logique propositionnelle

La logique propositionnelle, la plus simple des logiques, mais très


importante.
Analyse systématique de la forme des propositions plutôt que de la
forme des raisonnements sur ces propositions
Repose sur une décomposition des propositions selon des connecteurs
(la conjonction et, la disjonction ou, la conditionnelle si alors), jusqu’à
obtenir des propositions atomiques.
On peut alors définir des raisonnements tel le modus ponens.
Mais ne permet pas (a priori) de faire de distinctions entre des notions
grammaticales de base, comme les substantifs et les adjectifs.

H. Bensaid (Filière Informatique) Logique pour informatique 48 / 124


Logique propositionnelle

Une proposition est une phrase déclarative qui peut peut être soit vraie
soit fausse (mais pas les deux à la fois)
Exemples de propositions :
1 ≤ 3, Rabat est la capitale du Maroc, l’UIR est la meilleure université
du Maroc, . . .
Contre-exemples :
x + 1 = 0, il est quel heure ?, . . .

H. Bensaid (Filière Informatique) Logique pour informatique 49 / 124


Logique propositionnelle : syntaxe

Définition (Formules propositionnelles)


Étant donné un ensemble au plus dénombrable S de symboles
propositionnels, on considère le vocabulaire .

VP (S ) = {>, ⊥, ∨, ∧, ¬, ⇒, ⇔, "(", ")"} .

L’ensemble des formules propositionnelles P (S ) est le plus petit ensemble


tel que :
S ⊆ P (S )
> ∈ P (S ) et ⊥ ∈ P (S )
© ¡ ¢ ¡ ¢ ¡ ¢ ¡ ¢ª
pour tout f , g ∈ P (S ), ¬ f , f ∨ g , f ∧ g , f ⇒ g , f ⇔ g ⊆ P (S ).

H. Bensaid (Filière Informatique) Logique pour informatique 50 / 124


Logique propositionnelle : sémantique

Définition (Sémantique de la LP)


On ªdéfinit IP (S ) comme l’ensemble des fonctions I de S dans l’ensemble
©
v, f des valeurs de vérité. La relation de satisfaction |=0 est définie pour
tout I ∈ IP (S ) et tout f ∈ P (S ) de façon inductive :
I |=0 >et I 6|=0 ⊥
I |=0 p ssi I p = v, pour tout p ∈ S ,
¡ ¢

I |=0 ¬ f ssi I 6|=0 f ,


I |=0 f ∨ g ssi I |=0 f ou I |=0 g ,
I |=0 f ∧ g ssi I |=0 f et I |=0 g ,
I |=0 f ⇒ g ssi I |=0 f implique que I |=0 g ,
I |=0 f ⇔ g ssi on a à la fois I |=0 f ⇒ g et I |=0 g ⇒ f .

H. Bensaid (Filière Informatique) Logique pour informatique 51 / 124


Logique propositionnelle : définition

Définition (Logique propositionnelle)


On appelle logique propositionnelle la logique
LP (S ) = (VP (S ) , P (S ) , IP (S ) , |=0 ). La relation d’équivalence logique
relative à |=0 sera notée ≡0 .

Les symboles propositionnels sont les « mots » dont l’interprétation


est variable.
© ª
Leur interprétation ne peut varier que dans l’ensemble v, f .
⇒ variabilité minimale.
La logique propositionnelle étant indicée par l’ensemble S ⇒ on
définit une famille de logiques.
L’interprétation des symboles (négation, implication, etc.) fixée par la
définition de la relation de satisfaction et ne dépend pas de S ;

H. Bensaid (Filière Informatique) Logique pour informatique 52 / 124


Table de vérité

Autre manière de spécifier la sémantique (comme un calcul)

p q > ⊥ ¬p p ∧q p ∨q p⇒q p⇔q


v v v f f v v v v
v f v f f f v f f
f v v f v f v v f
f f v f v v f v v

H. Bensaid (Filière Informatique) Logique pour informatique 53 / 124


Exemple

¡ ¢ ¡ ¢
Soit la formule ¬p ∨ q ⇔ p ⇒ q
¡ ¢
p q ¬p ¬p ∨ q p⇒q p⇔q
v v f v v v
v f f f f v
f v v v v v
f f v v v v
¡ ¢ ¡ ¢
|=0 ¬p ∨ q ⇔ p ⇒ q : formule valide.

H. Bensaid (Filière Informatique) Logique pour informatique 54 / 124


Autres exemples

Donner les tables de vérité des formules suivantes :


¡ ¢ ¡ ¢
¡p ⇒ ⊥¢ ⇔¡ ¬p ¢
1

¡¡p ⇒ q ¢∧ ¡q ⇒ p ¢¢ ¡
2
¢
3 p ⇒q ∧ q ⇒r ⇒ p ⇒r

H. Bensaid (Filière Informatique) Logique pour informatique 55 / 124


Equivalence logique et calcul algébrique

¡ ¢ ¡ ¢
I |=0 f ⇔ g ssi I f = I g pour toute interprétation I ,
ceci est équivalent à f ≡0 g .
Les tables de vérité permettent donc de prouver que deux formules
sont logiquement équivalentes.
L’équivalence logique admet une propriété fondamentale :

Théorème
Soient g ∈ P (S ), f une sous-formule de g et f 0 ∈ P (S ) telle que f ≡0 f 0 , si
g 0 est obtenue de g en remplaçant f par f 0 alors g ≡0 g 0 .

H. Bensaid (Filière Informatique) Logique pour informatique 56 / 124


Logique propositionnelle : équivalence propositionnelle

(p ⇒ q) ≡0 (¬q ⇒ ¬p) : contraposé


¡¡ ¢ ¡ ¢¢
(p ⇔ q) ≡0 p ⇒ q ∧ q ⇒ p
¬(p ∨ q) ≡0 (¬p ∧ ¬q) et ¬(p ∧ q) ≡0 (¬p ∨ ¬q) : De Morgan
¡ ¢ ¡¡ ¢ ¡ ¢¢
p ∧ q ∨ r ≡0 p ∧ q ∨ p ∧ r
f ∧ f ≡0 f : idempotence
f ∧ ⊥ ≡0 ⊥ : élément absorbant
f ∧ > ≡0 f : élément neutre
...
⇒ Algèbre de Boole
Problème : comment réduire toute formule valide (resp. insatisfaisable)
à > (resp. ⊥) ?

H. Bensaid (Filière Informatique) Logique pour informatique 57 / 124


Un système d’inférence pour la LP

Soit S un ensemble infini fixé de symboles propositionnels. On note P1


pour P (S )1 , LP1 pour LP (S )1 . . .

Définition
On définit le système d’inférence S 1 = (VP , P1 , R 1 ) où R 1 = {MP, K, S, N}
A A⇒B
MP S
B (A ⇒ (B ⇒ C )) ⇒ ((A ⇒ B ) ⇒ (A ⇒ C ))

K N
A ⇒ (B ⇒ A) (¬B ⇒ ¬A) ⇒ ((¬B ⇒ A) ⇒ B )

H. Bensaid (Filière Informatique) Logique pour informatique 58 / 124


Correction et complétude de S 1

Théorème
S 1 est correct pour LP1 .

Théorème
S 1 est complet pour LP1 .
Toute formule valide de LP1 est un théorème de S 1 et peut donc être
engendré à partir des axiomes et du modus ponens.

H. Bensaid (Filière Informatique) Logique pour informatique 59 / 124


Forme clausale

Objectif : transformer les formules propositionnelles en ensembles de


formules très simples
Ces formules sont appelées des clauses.
On élimine les connecteurs ⇒ et ⇔ en utilisant les équivalences
f ⇒ g ≡0 ¬
¡ f ∨g ¢ ¡ ¢
f ⇔ g ≡0 ¬ f ∨ g ∧ ¬g ∨ f
On utilise les relations de réécriture :
f ⇒ g → ¡¬ f ∨ g ¢ ¡ ¢
f ⇔ g → ¬ f ∨ g ∧ ¬g ∨ f (duplication des symboles)

H. Bensaid (Filière Informatique) Logique pour informatique 60 / 124


Avantage des connecteurs retenus

Identités algébriques
Identités de De Morgan :
¬(p ∨ q) → (¬p ∧ ¬q) et ¬(p ∧ q) → (¬p ∨ ¬q)
Propriétés simples de la négation
¡ ¢
¬ ¬ f → f , ¬> → ⊥ et ¬⊥ → >
La négation est restreinte aux symboles propositionnels

H. Bensaid (Filière Informatique) Logique pour informatique 61 / 124


Algorithme de transformation en FNC

Appliquer tant que c’est possible l’une des règles :


f ⇒ g → ¬f ∨ g
¡ ¢ ¡ ¢
f ⇔ g → ¬ f ∨ g ∧ ¬g ∨ f
¬(p ∨ q) → (¬p ∧ ¬q)
¬(p ∧ q) → (¬p ∨ ¬q)
¡ ¢ ¡ ¢ ¡ ¢
p ∨ q ∧r → p ∨q ∧ p ∨r
¡ ¢ ¡ ¢ ¡ ¢
p ∧q ∨r → p ∨r ∧ q ∨r
¡ ¢ ¡ ¢
p ∧q ∧r → p ∧ q ∧r
¡ ¢ ¡ ¢
p ∨q ∨r → p ∨ q ∨r
¡ ¢
¬ ¬f → f
¬> → ⊥
¬⊥ → >

H. Bensaid (Filière Informatique) Logique pour informatique 62 / 124


Littéraux

Définition (Littéral)
On appelle littéral toute formule de la forme p ou ¬p , où p ∈ S . Les
littéraux p et ¬p sont dit complémentaires ; p est un littéral positif, et ¬p
def
est un littéral négatif. Le littéral complémentaire de p est p = ¬p , et le
def
littéral complémentaire de ¬p est ¬p = p .

Conserver un seul niveau d’alternance du ∧ et du ∨


Distributivité du ∧ et du ∨
f ∨ > → >, > ∨ f → >, f ∧ > → f et > ∧ f → f .

H. Bensaid (Filière Informatique) Logique pour informatique 63 / 124


Clauses et formes clausales

Définition (Clause)
On appelle clause toute formule ne contenant que des littéraux et les
connecteurs ∨ et ⊥. On appelle forme normale conjonctive (ou fnc) toute
conjonction d’un nombre fini de clauses, ainsi que la formule >.

Toute formule peut être transformée en une fnc équivalente.


Possibilité d’obtenir une forme normale disjonctive équivalente.
Raison du choix de la fnc : une conjonction de formules est
logiquement équivalente à l’ensemble de ces formules.

Définition (Forme clausale)


Si C 1 ∧ . . . ∧C n est une fnc obtenue par transformation d’une formule f ,
alors l’ensemble {C 1 , . . .C n } est une forme clausale de f .

H. Bensaid (Filière Informatique) Logique pour informatique 64 / 124


Littéraux d’une clause

Définition (Littéraux apparaissant dans une clause)


On définit l’ensemble Lit des littéraux apparaissant dans une clause de la
façon suivante :

Lit (⊥) = ;,
Lit (l ) = {l } pour tout littéral l ,
Lit (C ∨ D) = Lit (C ) ∪ Lit (D) pour toutes clauses C et D.

La longueur d’une clause C , notée |C |, est le cardinal de l’ensemble


Lit (C ).
Une clause C est vide si |C | = 0,
C est unitaire si |C | = 1.
Si D est une clause telle que Lit (C ) ⊆ Lit (D), on dit que C subsume D .
Extension possible à un ensemble de clauses

H. Bensaid (Filière Informatique) Logique pour informatique 65 / 124


Clauses insatisfaisables

Les clauses vides (⊥, ⊥ ∨ ⊥, . . .) sont INSATISFAISABLES,


L’ensemble vide (de clauses) ; est lui VALIDE.
seules les clauses vides sont insatisfaisables.

Théorème (Caractérisation des clauses valides)


Une clause C est valide si et seulement si Lit (C ) contient deux littéraux
complémentaires.

Théorème (Caractérisation de la conséquence logique entre clauses)


Soient C une clause et D une clause non valide, on a C |=0 D si et
seulement si C subsume D .

H. Bensaid (Filière Informatique) Logique pour informatique 66 / 124


Notion de preuve
Notion extrêmement importante et subtile.
Très ardu (voire impossible) de saisir sa signification simplement en
évoquant une définition formelle.
Présente dans beaucoup de domaines :
dans les sciences exactes (mathématiques, physique, biologie, chimie,
etc.) ,
dans les sciences humaines (histoire, paléontologie, sociologie, etc.),
dans beaucoup d’activités inhérentes aux sociétés organisées (justice,
police, vente, assurances, etc.) .
Étymologiquement : preuve → prouver → de probus : de bonne
qualité, honnête, loyal
Les exigences pour reconnaître un objet comme preuve et les
méthodes de preuve en général très différentes et dépendent des
époques (y compris pour les mathématiques)
Les mathématiques (et l’informatique) sont le domaine par excellence
des preuves
H. Bensaid (Filière Informatique) Logique pour informatique 67 / 124
Notion de preuve : c’est bien mais ...

Now, there can be no proof, no conclusive proof, that a proof


really proves its conclusion, because, if such a miraculous means
were available to us, we would of course always use it and be
guaranteed against mistakes. lt would be a wonderful situation,
but we are human beings and we are not in that position
[ ... ]
So, clearly, there can be no proof in the proper sense of the
word that a proof really proves its conclusion : the most there can
be is a discussion as to whether a proof is correct or not, and such
discussion arises precisely when we make mistakes, or when we have
insufficient grounds or evidence for what we are doing.
P. Martin-Lof

H. Bensaid (Filière Informatique) Logique pour informatique 68 / 124


Vérification (automatique) de preuves

Le processus de vérification est très douloureux, parce qu’on a


peur de s’être trompé. C’est en fait la phase la plus angoissante,
parce qu’on ne sait jamais si son intuition est juste. . . c’est un peu
comme dans les rêves, l’intuition se trompe très facilement. Je me
souviens d’avoir passé un mois à vérifier un résultat : je reprenais la
démonstration dans ses moindres détails, jusqu’à l’obsession, tâche
qui pourrait à la rigueur être confiée à un calculateur électronique
qui vérifierait la logique du raisonnement.
A. Connes
L’informatique à la rescousse

H. Bensaid (Filière Informatique) Logique pour informatique 69 / 124


Preuves : quelques types de règles d’inférence

exemples de types de règles d’inférence


Le syllogisme hypothétique (Modus Ponens)
de A et si A al or s B on déduit B
La récurrence et l’induction
Modus Tollens :
de si A al or s B et ¬B déduire ¬A

H. Bensaid (Filière Informatique) Logique pour informatique 70 / 124


Preuves : quelques types de techniques de preuve

exemple de techniques de preuve très utilisés


La réduction à l’absurde,
L’analyse par cas,
La diagonalisation :
procédure, inventée par Cantor, utilisée pour faire des preuves par
(réduction à) l’absurde,
Principe : on suppose que l’on peut donner une énumération de tous les
objets d’une classe et la procédure de diagonalisation construit un
élément de la classe qui n’est pas parmi les objets énumérés. . .
Supposer donc qu’il existe une telle énumération mène à une
contradiction

H. Bensaid (Filière Informatique) Logique pour informatique 71 / 124


Formule démontrable

Notions de démonstration et théorème


Déjà introduites avant
Étymologie : théorème (XVIe s.) → théâtre → theôrema : objet de
contemplation ou d’étude (ce que l’on voit, spectacle)
Démontrabilité vs Validité (conséquence logique)
Syntaxe vs Sématique

H. Bensaid (Filière Informatique) Logique pour informatique 72 / 124


Démonstration automatique : méthodes de preuves

Utilisation de règles d’inférence (i.e. d’un calcul)


Plusieurs méthodes pour la LP
Tableaux
Méthode de résolution (Robinson, 1965) : l’unification comme outil de
restriction
DPLL

H. Bensaid (Filière Informatique) Logique pour informatique 73 / 124


Démonstration par réfutation et saturation

Formules sous forme clausale (conjonction de clauses)


Pour montrer que S |= D on montre que S ∪ ¬D est insatisfaisable :
preuve par réfutation (ou par l’absurde)
Saturation : appliquer les règles d’inférences jusqu’à :
ou bien trouver la clause vide (réfutation)
ou bien aucune inférence possible (saturation)
Élimination de la redondance : détecter et éliminer les clauses inutiles
pour dériver la clause vide
S (ensemble) est saturé si toute clause déductible de S est redondante
par rapport à S
Propriétés de correction et de complétude réfutationnelle

H. Bensaid (Filière Informatique) Logique pour informatique 74 / 124


Le calcul de résolution pour la LP

Système formel sur les formules propositionnelles utilisant les deux


règles d’inférence :
Règle de résolution (R)
C∨A D ∨ ¬A
C ∨D

Règle de factorisation (F)


C ∨A∨A
C∨A

H. Bensaid (Filière Informatique) Logique pour informatique 75 / 124


Correction du calcul de résolution pour la LP

Théorème (Correction du calcul de résolution pour la LP)


Le calcul de résolution pour la LP est correct.

Démonstration.
Il suffit de montrer que les règles d’inférence (Résolution + Factorisation)
sont correctes.

H. Bensaid (Filière Informatique) Logique pour informatique 76 / 124


Utilité de la règle de factorisation

Soit l’ensemble : (
p ∨p
S=
¬p ∨ ¬p

S est insatisfaisable mais . . . si on n’applique que la règle de résolution


on obtient :
p ∨p ¬p ∨ ¬p
p ∨ ¬p

p ∨ p


Donc S 0 = ¬p ∨ ¬p


> (p ∨ ¬p) → >
⇒ Impossible de déduire la clause vide

H. Bensaid (Filière Informatique) Logique pour informatique 77 / 124


Exemple de preuve par résolution

Soit la forme clausale suivante S .




(1) p ∨ ¬q Dérivation (Réfutation) :


(2) q ∨r q ∨ r p ∨ ¬r



S = (3) p ∨ ¬r p ∨ ¬q p ∨q ¬p ∨ r ¬p ∨ ¬r

 p ∨p ¬p ∨ ¬p

(4) ¬p ∨ r


 p ¬p
(5) ¬p ∨ ¬r


Autre notation :

(1) p ∨ ¬q (6) p ∨ q R(2, 3)


(2) q ∨ r (7) p ∨ p R(1, 6)
(3) p ∨ ¬r (8) p F (7)
(4) ¬p ∨ r (9) ¬p ∨ ¬p R(4, 5)
(5) ¬p ∨ ¬r (10) ¬p F (9)
(11) ⊥ R(8, 10)

H. Bensaid (Filière Informatique) Logique pour informatique 78 / 124


Complétude (réfutationnelle) du calcul de résolution

Théorème
Si une forme clausale F est insatisfaisable, alors F `R ⊥.

Le calcul de résolution peut être utilisé pour démontrer que F `0 C où


F une forme clausale et C une clause.
Il suffit de considérer la forme clausale F 0 = F ∧ FNC(¬C ) et de
montrer que F 0 `R ⊥.

H. Bensaid (Filière Informatique) Logique pour informatique 79 / 124


La méthode DPLL (Davis–Putnam–Logemann–Loveland)

DPLL = Davis–Putnam–Logemann–Loveland
Algorithme de backtracking, complet, de résolution du problème SAT.
Solveur SAT = outil capable de tester la satisfaisabilité d’une formule
propositionnellele.
Les solveurs les plus efficaces sont aujourd’hui capables de résoudre
des problèmes constitués de centaines de milliers de symboles
propositionnels et de dizaines de millions de clauses en moins d’une
minute.
Tester la satisfaisabilité d’une formule propositionnelle est très utilisé
dans l’industrie (pour s’assurer par exemple qu’un circuit électronique
répond bien à une spécification donnée et ne contient pas d’erreurs).

H. Bensaid (Filière Informatique) Logique pour informatique 80 / 124


La méthode DPLL

Algorithme basé sur la construction incrémentale d’un modèle à


l’ensemble de clauses considéré,
Chercher successivement quels littéraux de l’ensemble doivent être
interprétés à vrai et lesquels doivent être interprétés à faux.
Idée de l’algorithme : soit E un ensemble de clauses et l est un littéral
apparaissant dans E .
Si, lors de la recherche d’un modèle de E , l est évalué à vrai, alors
toutes les clauses contenant l sont évaluées à vrai, et toutes les clauses
contenant son complémentaire doivent être évaluées à vrai grâce à
d’autres littéraux.
Il n’est donc pas nécessaire de considérer les clauses contenant l ,
Il n’est pas nécessaire de considérer l dans les clauses contenant ce
complémentaire.

H. Bensaid (Filière Informatique) Logique pour informatique 81 / 124


DPLL

Définition
Si E est un ensemble de clauses et l est un littéral apparaissant dans E ,
alors on note E [l ] l’ensemble de clauses obtenu à partir de E en :
retirant de E toutes les clauses qui contiennent l ,
retirant l de toutes les clauses de E dans lesquelles il apparaît.

H. Bensaid (Filière Informatique) Logique pour informatique 82 / 124


Exemple :

Soient les clauses suivantes :

C1 = p 1 ∨ ¬p 2 ∨ p 3
C2 = p 1 ∨ ¬p 4
C3 = ¬p 1 ∨ ¬p 3
et soit E = {C 1 ,C 2 ,C 3 }. Alors :
© ª
E [p 1 ] = ¬p 3
© ª
E [¬p 3 ] = p 1 ∨ ¬p 2 , p 1 ∨ ¬p 4

H. Bensaid (Filière Informatique) Logique pour informatique 83 / 124


Algorithme DPLL

Squelette
Un arbre des affectations possibles est utilisé pour guider la procédure
Chaque noeud est un ensemble de clauses S i
A chaque noeud, un des littéraux prend la valeur vrai
Les valeurs de vérité sont propagées pour réduire le nombre des
affectations futures

H. Bensaid (Filière Informatique) Logique pour informatique 84 / 124


Algorithme DPLL : algorithme

Algorithme
Entrée : S = C 0 = {C 1 , . . . ,C k } où C i = L 1 ∨ L 2 ∨ . . . ∨ L r i .
C 0 est la racine de l’arbre
Appliquer les règles d’inférence aux feuilles en étendant l’arbre.
Une branche n’est plus étendue si S i = {} ou ⊥ ∈ S i
Si S i = {} alors S est satisfaisable et on arrête la procédure.
Si ⊥ ∈ S i pour toutes les branches alors S est insatisfaisable.

H. Bensaid (Filière Informatique) Logique pour informatique 85 / 124


Algorithme DPLL : appliquer les règles

Appliquer les règles


On applique certaines règles qui présèrvent la satisfaisabilité
Quand on applique une règle, on construit en même temps une
interprétation partielle de S .
Règles :
Elimination des tautologies
Propagation unitaire
Littéral pur
Règle de séparation

H. Bensaid (Filière Informatique) Logique pour informatique 86 / 124


Elimination des tautologies

Elimination des tautologies


Eliminer toutes les clauses dans S qui sont des tautologies ; Le résultat S 0
est insatisfaisable Ssi S l’est.

Elimination des tautologies


©¡ ¢ ª
S = ¬p ∨ q ∨ p ∨ ¬r ∧ q ∧ r
S0 = q ∧ r
© ª

H. Bensaid (Filière Informatique) Logique pour informatique 87 / 124


Propagation unitaire

Propagation unitaire
S’il y’a une clause unitaire L ∈ S , on obtient S 0 à partir de S en enlevant
toutes les clauses de S qui contiennent L . Si S 0 = {} alors S est satisfaisable,
sinon on obtient S 00 à partir de S 0 en enlevant ¬L de toutes les clauses. S
est insatisfaisable ssi S 00 l’est. Quand on applique cette règle, on fixe L = >
dans l’affectation partielle.

Propagation unitaire
©¡ ¢ ª
S= p ∨ q ∨ ¬r , p ∨ ¬q, ¬p, r, u
On applique la règle de propagation unitaire avec L = ¬p
S0 =
©¡ ¢ ª
p ∨ q ∨ ¬r , p ∨ ¬q, r, u
On enlève ¬L = p des clauses de S 0 : S 00 = q ∨ ¬r , ¬q, r, u
©¡ ¢ ª

On fixe L = > donc p = ⊥

H. Bensaid (Filière Informatique) Logique pour informatique 88 / 124


Littéral pure

Définition (Littéral pure)


L ∈ S est un littéral pure ssi ¬L 6∈ S .

Règle du littéral pure


S’il y’a un littéral pure L ∈ S , on obtient S 0 à partir de S en enlevant toutes
les clauses où L apparait. S est insatisfaisable ssi S 0 l’est. Quand on
applique cette règle, on fixe L = > dans l’affectation partielle.

Littéral pure
© ª
S = p ∨ q, p ∨ ¬q, r ∨ q, r ∨ ¬q
On applique la règle du littéral pure avec L = p
S 0 = r ∨ q, r ∨ ¬q
© ª

On fixe L = >, alors p = >.

H. Bensaid (Filière Informatique) Logique pour informatique 89 / 124


Règle de subsomption

Définition (Subsomption)
Si D est une clause telle que Lit (C ) ⊆ Lit (D), on dit que C subsume D .

Subsomption
Si S = E ∪ C ,C 0 où C subsume C 0 alors on obtient S 0 à partir de S en
© ª

enlevant C 0 : S 0 = E ∪ {C }.

Subsomption
© ª
S = r ∨ t , p ∨ q, p ∨ q ∨ s
C = p ∨ q subsume C 0 = p ∨ q ∨ s
S0 = r ∨ t , p ∨ q
© ª

H. Bensaid (Filière Informatique) Logique pour informatique 90 / 124


Séparation

Règle de séparation
Si on peut écrire S sous la forme suivante :

S = (C 1 ∨ L) ∧ . . . (C m ∨ L) ∧ (D 1 ∨ ¬L) ∧ . . . (D m ∨ ¬L) ∧ S r

Où les C i , D i sont des clauses où L et ¬L n’apparaissent pas et S r un


ensemble de clauses où L et ¬L n’apparaissent pas. On peut alors obtenir
deux ensembles S 0 = C 1 ∧ . . .C m ∧ S r et S 00 = D 1 ∧ . . . D m ∧ S r . S est
insatisfaisable ssi S 0 et S 00 le sont. Quand on applique cette règle on sépare
l’arbre et on fixe L = > pour S 0 et L = ⊥ pour S 00 .

H. Bensaid (Filière Informatique) Logique pour informatique 91 / 124


Séparation : exemple

Séparation
© ª
S = p ∨ ¬q ∨ r, ¬p ∨ q, q ∨ ¬r, ¬q ∨ ¬r
On applique la règle de séparation sur p
S 0 = ¬q ∨ r, q ∨ ¬r, ¬q ∨ ¬r , p = >
© ª

S 00 = q, q ∨ ¬r, ¬q ∨ ¬r , p = ⊥
© ª

H. Bensaid (Filière Informatique) Logique pour informatique 92 / 124


Correction et Complétude réfutationnelle de DPLL

Théorème
DPLL est correct et complet pour la réfutation.

H. Bensaid (Filière Informatique) Logique pour informatique 93 / 124


Plan

1 Systèmes d’inférence

2 Logiques

3 Logique propositionelle
Un système d’inférence pour la LP
Forme clausale
Preuves
Calcul de résolution
Méthode DPLL

4 Logique du premier ordre


Syntaxe et sémantique
Calcul de résolution

H. Bensaid (Filière Informatique) Logique pour informatique 94 / 124


Logique du premier ordre

Pouvoir d’expression de la logique propositionnelle limité


⇒ Introduction de :
Variables
Symboles de fonction : propriétés (ou adjectifs)
Termes du premier ordre : objets
Prédicats : relations
Quantificateurs : universel ∀ et existentiel ∃

H. Bensaid (Filière Informatique) Logique pour informatique 95 / 124


Logique du premier ordre (LPO) : syntaxe

U∞F = F0 ∪ n=1 Fn (et constantes),


Variables V , symboles de fonction ∞ U
symboles de prédicat P = P 0 ∪ n=1 P n deux à deux disjoints.
V dénombrable infini.
Quantificateurs universel ∀ et existentiel ∃
Connecteurs logiques : ¬, ∨, ∧, ⇒, ⇔
> et ⊥.
Vpo = {∀, ∃, ¬, ∨, ∧, ⇒, ⇔, >, ⊥}.

Définition (Termes du premier ordre)


L’ensemble Tpo (V , F ) des termes du premier ordre est le plus petit
ensemble tel que :
V ⊆ Tpo (V , F ) (une variable est un terme du premier ordre)
F0 ⊆ Tpo (V , F ) (une constante est un terme du premier ordre)
Si t 1 , . . . , t n ∈ Tpo (V , F ) et f ∈ Fn alors f (t 1 , . . . , t n ) ∈ Tpo (V , F ).

H. Bensaid (Filière Informatique) Logique pour informatique 96 / 124


Logique du premier ordre (LPO) : syntaxe

Définition (Formule du premier ordre (ou formule bien formée (fbf)))


L’ensemble Fpo (V , F ) des formules du premier ordre est le plus petit
ensemble tel que :
P 0 ∪ {>, ⊥} ⊆ Fpo (V , F ).
Si P ∈ P n et t 1 , . . . , t n ∈ Tpo (V , F ) alors P (t 1 , . . . , t n ) ∈ Fpo (V , F ).
Si f ∈ Fpo (V , F ) alors ¬ f ∈ Fpo (V , F ).
Si f , g ∈ Fpo (V , F ) alors f ∨ g ∈ Fpo (V , F ).
Si f , g ∈ Fpo (V , F ) alors f ∧ g ∈ Fpo (V , F ).
Si f , g ∈ Fpo (V , F ) alors f ⇒ g ∈ Fpo (V , F ).
Si f , g ∈ Fpo (V , F ) alors f ⇔ g ∈ Fpo (V , F ).
Si x ∈ V , f ∈ Fpo (V , F ) alors ∀x f ∈ Fpo (V , F ).
Si x ∈ V , f ∈ Fpo (V , F ) alors ∃x f ∈ Fpo (V , F ).

H. Bensaid (Filière Informatique) Logique pour informatique 97 / 124


Logique du premier ordre (LPO) : sémantique

Extension de la notion d’interprétation vue pour la LP


Sémantique pour donner un “sens” aux formules syntaxiques :
interprétations avec domaines et fonctions d’évaluation

Définition (Interprétation)
Une interprétation est définie par un domaine D I qui est un ensemble non
vide et par une fonction qui associe :
à chaque symbole constant a un élément a I ∈ D I ,
à chaque symbole de fonction f d’arité n une fonction f I : D nI → D I ,
à chaque variable propositionnelle P une valeur de vérité P I ∈ {v, f},
à chaque symbole de prédicat P d’arité n une fonction P I : D nI → {v, f},
à chaque variable x un élément x I ∈ D I .

H. Bensaid (Filière Informatique) Logique pour informatique 98 / 124


Logique du premier ordre (LPO) : sémantique

Définition (Valeur d’un terme)


Soit t un terme et I une interprétation. La valeur de t notée [t ]I est définie
inductivement par :
de f
Si t est une constante a alors [t ]I = a I ,
de f
Si t est une variable x alors [t ]I = x I ,
de f
Si t est de la forme f (t 1 , . . . , t n ) alors [t ]I = f I ([t 1 ]I , . . . , [t n ]I ).

H. Bensaid (Filière Informatique) Logique pour informatique 99 / 124


Logique du premier ordre (LPO) : sémantique
Définition (Valeur d’une formule)
Soit φ une formule et I une interprétation. La valeur de φ notée [φ]I est définie inductivement par :
de f
Si φ est une variable propositionnelle P alors [φ]I = P I
de f
Si φ est de la forme P (t1 , . . . , tn ) alors [φ]I = P I ([t1 ]I , . . . , [tn ]I )
(
de f v si [ψ]I =f
Si φ est de la forme ¬ψ alors [φ]I =
f si [ψ]I =v
(
de f v si [ψ1 ]I =v et [ψ2 ]I =v
Si φ est de la forme ψ1 ∧ ψ2 alors [φ]I =
f sinon
(
de f v si [ψ1 ]I =v ou [ψ2 ]I =v
Si φ est de la forme ψ1 ∨ ψ2 alors [φ]I =
f sinon
(
de f v si [ψ1 ]I =f ou [ψ2 ]I =v
Si φ est de la forme ψ1 ⇒ ψ2 alors [φ]I =
f sinon
(
de f v si [ψ1 ]I =[ψ2 ]I
Si φ est de la forme ψ1 ⇔ ψ2 alors [φ]I =
f sinon
(
de f v si pour chaque élément v ∈ D I ,[ψ]I {x←v} =v
Si φ est de la forme ∀x ψ alors [φ]I =
f sinon
(
de f v s’il existe un élément v ∈ D I tel que [ψ]I {x←v} =v
Si φ est de la forme ∃x ψ alors [φ]I =
f sinon

H. Bensaid (Filière Informatique) Logique pour informatique 100 / 124


Relation de satisfaction pour la LPO

Définition (Relation de satisfaction)


La relation de satisfaction I |=1 f est définie par :
I |=1 f ssi [ f ]I = v.
I 6|=1 f ssi [ f ]I = f.

I modèle d’une formule φ (clause) ssi I évalue φ à vrai (|=I φ)


Une formule φ est valide ssi pour toute interprétation I , |=I φ
Une formule est insatisfaisable ssi elle n’admet aucun modèle
Conséquence logique : φ |= ψ ssi (|=I φ ⇒|=I ψ)

H. Bensaid (Filière Informatique) Logique pour informatique 101 / 124


Logique du premier ordre (LPO)

Définition (Logique du premier ordre)


On appelle logique du premier ordre la logique
Lpo (V , F ) = V ∪ Vpo , Fpo (V , F ) , Ipo () , |=1 , où Ipo () l’ensemble de toutes
¡ ¢

les interprétations.

H. Bensaid (Filière Informatique) Logique pour informatique 102 / 124


Quelques définitions

Définition (Portée d’un quantificateur)


Dans les fbf ∀x A et ∃x A , A est la portée des quantificateurs.

Définition (Variable libre, liée)


Une occurrence d’une variable x dans une fbf est dite liée ssi x apparait
après un quantificateur (∀x, ∃x ) ou si elle est dans la portée d’un
quantificateur. Toute autre occurrence est dite libre.

Définition (Forme Normale Prénexe)


Une fbf A est dite sous forme normale prénexe ssi A est de la forme
Q 1 x 1 , . . .Q n x n M où Q i ∈ {∀, ∃}, M :fbf ne contenant aucun quantificateur.
Q 1 x 1 , . . .Q n x n : préfixe de A ; M : matrice de A .

H. Bensaid (Filière Informatique) Logique pour informatique 103 / 124


Quelques définitions

Définition (Forme clausale)


Une fbf est dite sous forme clausale ssi sa matrice est sous forme normale
conjonctive et son préfixe est de la forme ∀x 1 . . . ∀x n (i.e. tous les
quantificateurs sont universels) et x 1 , . . . , x n sont toutes les variables
apparaissant dans la matrice.

Définition (Formule de Horn)


Une fbf est dite formule de Horn ssi elle est sous forme clausale et chaque
conjoint contient au plus un atome positif.

Définition (Fbf fermée)


Une fbf fermée (fbff) est une fbf ne contenant pas de variable libre. Elle est
ouverte si elle n’est pas fermée.

H. Bensaid (Filière Informatique) Logique pour informatique 104 / 124


Quelques définitions

Atomes : P (t 1 , . . . , t n ), P ∈ P (ou t ≈ s on verra cela plus tard)


Littéraux : un atome A ou sa négation ¬A
Clauses : forme particulière de formules : disjonction de littéraux
quantifiée universellement (d’une manière implicite)

H. Bensaid (Filière Informatique) Logique pour informatique 105 / 124


Substitutions, unification, unificateur le plus général

Une substitution est une application de V dans Tpo (V , F )


Problème d’unification : σ telle que pour t σ = r σ
Il existe un unificateur le plus général.

H. Bensaid (Filière Informatique) Logique pour informatique 106 / 124


Algorithme de calcul de l’unificateur le plus général

H. Bensaid (Filière Informatique) Logique pour informatique 107 / 124


Skolemisation

La skolemisation (du nom du logicien norvegien T. Skolem) permet


d’éliminer les quantificateurs existentiels tout en préservant la
satisfaisabilité des formules.
L’idée est que :
(*) ∀x∃yP (x, y) a un modèle, et f est un symbole fonctionnel qui
n’apparaît pas dans la formule traitée ssi
(**) ∀xP (x, f (x)) a un modèle.
... mais (*) et (**) ne sont pas équivalentes, c’est-à-dire évaluées à la
même valeur de vérité dans les mêmes interprétations.

H. Bensaid (Filière Informatique) Logique pour informatique 108 / 124


Skolemisation

D’une façon plus générale, la formule :


¡ ¢
∀x 1 ∀x 2 . . . ∀x m ∃y∀x m+1 , . . . ∀x m+p P x 1 , . . . , x m , y, x m+1 , . . . , x m+p

Donne par skolemisation :


¡ ¢
∀x 1 ∀x 2 . . . ∀x m ∀x m+1 , . . . ∀x m+p P x 1 , . . . , x m , f (x 1 , . . . , x m ) , x m+1 , . . . , x m+p

et si m = 0 :
¡ ¢
∀x m+1 , . . . ∀x m+p P a, x m+1 , . . . , x m+p

H. Bensaid (Filière Informatique) Logique pour informatique 109 / 124


Forme normale de Skolem

F fbf de la logique du premier ordre


Par transformation en forme prénexe et skolemisation, on obtient la
forme de Skolem de F (notée sk (F )) : ∀x 1 ∀x 2 . . . ∀x n F 0
F 0 ne contient pas de quantificateur
var F 0 = {x 1 , . . . , x n }
¡ ¢

Lemme
F satisfaisable ssi sk (F ) satisfaisable

H. Bensaid (Filière Informatique) Logique pour informatique 110 / 124


Algorithme de transformation sous forme clausale

1 Éliminer les connecteurs ⇔ et ⇒


2 Distribuer les ¬
3 Renommer les variables liées
4 Préfixer les quantificateurs
5 Éliminer les ∃
6 Éliminer les ∀
7 Mettre la phrase sous forme conjonctive
8 Transformer chaque facteur en clause distincte
9 Renommer de façon distincte les variables, d’une clause à l’autre

H. Bensaid (Filière Informatique) Logique pour informatique 111 / 124


Algorithme de transformation sous forme clausale

1 Éliminer les connecteurs ⇔ et ⇒


A ⇒ B → ¬A ∨ B
2 Distribuer les ¬
¬ (¬A) ← A
¬ (∃xP (x)) → ∀x (¬P (x))
¬ (∀xP
¡ (x))
¢ → ∃x (¬P (x))
¬ ¡ f ∨ g ¢ → ¬ f ∧ ¬g
¬ f ∧ g → ¬ f ∨ ¬g
3 Renommer les variables liées
4 Préfixer les quantificateurs

H. Bensaid (Filière Informatique) Logique pour informatique 112 / 124


Algorithme de transformation sous forme clausale

5 Éliminer les ∃
∃xP (x)¡→ P¢(a) où a est une constante
¡ ¢ de skolem
∃x∀yP x, y est remplacé par P a, y où a est une constante de
skolem ¡(x n’¢ est pas dans la portée
¡ de¡ y¢¢)
∀x∃yP x, y est remplacé par P x, f y où f est une fonction de
skolem ( y ¡est dans
¢ la portée de x ) ¡ ¡ ¢¢
∀x∀y∃zP x, y, z est remplacé par P x, y, f x, y où f est une
fonction de skolem (z est dans la portée de x et de y )
6 Éliminer les ∀

H. Bensaid (Filière Informatique) Logique pour informatique 113 / 124


Algorithme de transformation sous forme clausale

7 Mettre la formule sous forme conjonctive


¡ ¢ ¡ ¢
f ∨ ¡g ∨ h ¢ → ¡ f ∨ g ¢ ∨ h
f ∧ ¡g ∧ h ¢ → ¡ f ∧ g ¢ ∧ h
¡ ¢
f ∨ g ∧h → f ∨g ∧ f ∨h
8 Transformer chaque facteur en clause distincte
¡ ¢ © ª
Exemple : f ∨ g ∧ h → f ∨ g , h
9 Renommer de façon distincte les variables, d’une clause à l’autre
© ª © ¡ ¢ª
Exemple : P (x) ∨Q (x) , R (x) → P (x) ∨Q (x) , R y

H. Bensaid (Filière Informatique) Logique pour informatique 114 / 124


Univers, base, interprétation de Herbrand

Définition (univers de Herbrand)


Étant donné un ensemble fini de formules sous forme de Skolem S construit
sur l’ensemble de symboles de prédicat π et de symboles fonctionnels F ,
l’univers de Herbrand sur F (ou univers de Herbrand de S ) est défini
comme suit :
H0 = {a | a ∈ F } ; si F ne contient pas de constante H0 = {a} ;
n o
Hi +1 = f j(n) (t 1 , . . . , t n ) | f j(n) ∈ F ; t k , ∈ Hi ∪ Hi (1 ≤ k ≤ n, i ≥ 0, n ≥ 1)
H (S) = H∞ = Hi ∈N

Les termes dans H (S) sont des termes clos (ou termes fermés) et sont
appelés termes de Herbrand.

H. Bensaid (Filière Informatique) Logique pour informatique 115 / 124


Univers, base, interprétation de Herbrand

Définition (base de Herbrand)


La base de Herbrand de S est l’ensemble de littéraux positifs (c’est-à-dire
des formules atomiques) :
B (S) = L[x̄ | t̄ H (S) ] | L (x̄) ∈ C ∈ S ou L (x̄)c ∈ C ∈ S; t̄ H (S) ∈ H (S) ∪ {F A c }
© ª

où L[x̄ | t̄ H (S) ] signifie toutes les variables dans L sont remplacées par
des termes de Herbrand.
L[x̄ | t̄ H (S) ] est une instance de Herbrand, (ou instance constante ou
instance fermée ou instance close de L (x̄)).
Clause fermée ou clause close.
F A c : formules atomiques closes (fermées) dans S .
x̄ dénote un n-uplet de variables et t̄ H (S) un n-uplet de termes de
Herbrand.

H. Bensaid (Filière Informatique) Logique pour informatique 116 / 124


Univers, base, interprétation de Herbrand

Définition (interprétation de Herbrand)


Une interprétation de Herbrand d’un ensemble de formules universellement
quantifiées S construit sur (π, F ) est une interprétation I H (S) telle que :
Domaine = H (S)
si a ∈ F alors [a]I H (S) = a
si f j(n) ∈ F alors [ f j(n) ]I H (S) = f j(n)H (S) avec
f j(n)H (S) : (t 1 , . . . , t n ) 7→ f j(n)H (S) (t 1 , . . . , t n ), t i ∈ H (S)
si P k(m) ∈ π alors [P k(m) ]I H (S) = P k(m)H (S) avec P k(m)H (S) ⊆ H (S)m

Une interprétation de Herbrand peut être représentée par I H (S) ⊆ B (S).


⇒ L’ensemble d’interprétations de Herbrand de S correspond à
l’ensemble des parties de B (S).

H. Bensaid (Filière Informatique) Logique pour informatique 117 / 124


Théorème de Löwenheim-Skolem

Théorème (Théorème de Löwenheim-Skolem)


Si F fbf de la L1O a un modèle alors F a un modèle dénombrable.

Corollaire (Lowenheim-Skolem pour les ensembles finis (et infinis) de


formules)
Si un ensemble fini de fbf de la L1O S a un modèle alors S a un modèle
dénombrable.
Si un ensemble dénombrable S de fbf de la L1O a un modèle alors S a un
modèle dénombrable.

H. Bensaid (Filière Informatique) Logique pour informatique 118 / 124


Théorème de Herbrand

Théorème
F fbf de la L1O est satisfaisable ssi elle est satisfaisable sur le domaine
H (sk (F )).

Théorème (Théorème de Herbrand)


F fbf de la L1O est valide ssi il existe un ensemble fini d’instances de
sk (¬F ) insatisfaisable (contradictoire) .

H. Bensaid (Filière Informatique) Logique pour informatique 119 / 124


Procédure de semi-décision

H. Bensaid (Filière Informatique) Logique pour informatique 120 / 124


Théorème de compacité

Théorème (de compacité de la L1O)


S : ensemble de fbf de la L1O.
Si tout sous-ensemble fini de S est satisfaisable alors S est satisfaisable.

H. Bensaid (Filière Informatique) Logique pour informatique 121 / 124


Le calcul de resolution

Règle de résolution
C∨A D ∨ ¬B
(C ∨ D)σ
où σ = mgu(A, B )
Règle de factorisation
C ∨ A ∨B
(C ∨ B )σ
où σ = mgu(A, B )

H. Bensaid (Filière Informatique) Logique pour informatique 122 / 124


Le calcul de resolution ordonnée

Objectif : restreindre l’application des règle avec un ordre


Règle de résolution ordonnée
C∨A D ∨ ¬B
(C ∨ D)σ

où σ = mgu(A, B ), Aσ et ¬B σ sont maximaux dans (C ∨ A)σ et


(D ∨ ¬B )σ respectivement
Règle de factorisation ordonnée
C ∨ A ∨B
(C ∨ B )σ

où σ = mgu(A, B ) et B σ et maximal dans (C ∨ A ∨ B )σ

H. Bensaid (Filière Informatique) Logique pour informatique 123 / 124


Calcul de superposition S C

Traitement de l’égalité
Superposition (S )
Q ∨ (l ≈ r ) D ∨ (w[t ] ./ u)
(Q ∨ D ∨ (w[r ] ≈ u))σ
où ./∈ {≈, 6≈}, σ = mgu(l , t ), l σ  r σ, wσ  uσ, (l ≈ r )σ, (w ≈ u)σ sont maximaux
dans (Q ∨ l ≈ r )σ et (D ∨ w ≈ u)σ respectivement et t n’est pas une variable
Résolution équationnelle (E R )
Q ∨ (l 6≈ r )

où σ = mgu(l , r ) et (l 6≈ r )σ est maximal dans (Q ∨ l 6≈ r )σ
Factorisation équationnelle (E F )

Q ∨ (t ≈ s) ∨ (l ≈ r )
(Q ∨ (s 6≈ r ) ∨ (l ≈ r ))σ

où σ = mgu(l , t ), l σ  r σ, t σ  sσ et (t ≈ s)σ est maximal dans (Q ∨ l ≈ r ∨ t ≈ s)σ

H. Bensaid (Filière Informatique) Logique pour informatique 124 / 124

You might also like