Upload
vanngoc
View
218
Download
0
Embed Size (px)
Citation preview
Logique des programmesL3
N. Hameurlain
1
N. Hameurlain
http://www.univ-pau.fr/~hameur
Historique (1)• des syllogismes :
• « Tous les A Née en Grèce en tant qu’étude des lois formelles du raisonnement:– En particulier Aristode (IV ème siècle av. JC), a
développée une théorie sont des B, tous les B sont de C; donc
2
développée une théorie sont des B, tous les B sont de C; donc tous les A sont des C »,
• Étudier la forme de raisonnement scientifique, par ex. de la physique;
– Elle a connu un certain développement pendant le moyen-Age, mais pas de progrès substantiels …;
– jusqu’au début du 20èmesiècle: elle naît comme une vraie « science ».
Historique (2)• « Les pères fondateurs »: Frege, Russell, Hilbert, Gödel,
Gentzen, Herbrand– Fort intérêt que l’on sent au début de ce sièclepour les problèmes dits
des « fondements des mathématiques »;• Théorie des ensembles: paradoxe de Russel!
– E = {x/x est un ens. tel que x ∉ x}, on obtient :E ∈ E ssi E ∉ E– E est bien défini et pourtant il est contradictoire!
3
– E est bien défini et pourtant il est contradictoire!
– Deuxième partie du 20èmesiècle, établissement des connexions de plus en plus étroites entre la logique et l’informatique:
• Lambda-calcul (langages fonctionnels, LISP, ML),• Programmation logique (PROLOG, par exemple),• Représentation des connaissances en IA,• Bases de données (langage de requêtes).• Typage et sous-typage dans les langages de programmation
Utilisation de la Logique en Informatique
• Architectures des ordinateurs,– Spécification et mise en œuvre des circuits logiques,
• Preuve et correction des programmes,– Invariant de boucle, etc…
• En tant que paradigme de programmation Logique (prolog),– Programmes: formules logiques particulières (appelées clauses de
4
– Programmes: formules logiques particulières (appelées clauses de Horn).
• Pour produire des programmes,– Repose sur les arbres de preuves. Cette utilisation est très
complexe.• Par des programmes de démonstration (semi) automatique pour
démontrer des théorèmes,– Entrée: formules, Sortie: la preuve que cette formule est vraie si
elle l’est.
La logique (1)• Le but est de caractériser le raisonnement valide:
– SI il neige ALORS il fait froid. OR Il ne fait pas froid. DONC il ne neige pas.
– SI il pleut ALORS la route est mouillée. OR il pleut. DONC la route est mouillée.
• Les moyens:– représentation du monde : introduction de connecteurs pour
5
– représentation du monde : introduction de connecteurs pour structurer les propositions
• négation : ¬(il_pleut) • conjonction : il_pleut ∧ la_route_est_mouillée • implication : il_pleut -> la_route_est_mouillée • ... • quantification existentielle : ∃ x (dieu(x)) • quantification universelle : ∀...
– règles d'inférence : passage des prémisses à la conclusion.
La logique (2)
• Niveaux d'analyse:– Langage :
• définition des formules bien formées;
– Théorie des modèles (sémantique) :
6
– Théorie des modèles (sémantique) : • définition des notions de validitéet de conséquence logique
– Théorie de la preuve (axiomatique) : • définition des notions de prouvabilitéet de déduction
• Idéal : valide = démontrable
Programme
• Logique des propositions:– Langage, sémantique, axiomatique
• Propositions, connecteurs, formules, évaluation,– Formes Normales Conjonctives (et Disjonctives).
7
• Logique des prédicats:– Calcul des prédicats : Syntaxe, Sémantique, axiomatique;– Formes Normales: prénexe, de Skolem, clausale;– …
Chapitre 1
8
Logique des propositions
Introduction et Motivation (1)
• Besoin d'un langage formel (mathématique) pour étudier les inférences – On se limite à des connecteurs propositionnels
(connecteurs associant des propositions, et non des variables et des propositions).
9
variables et des propositions). • contradiction FALSE : `` faux '' (connecteur 0-aire)
• négation ¬ A : `` non A '' (` A n'est pas le cas ')
(connecteur unaire)
• conjonction A ∧ B : `` A et B '' (connecteur binaire)
Introduction et Motivation (2)
• disjonction A v B : `` A ou B '' (connecteur binaire)
• implication A -> B : `` si A alors B '' (connecteur binaire)
10
(connecteur binaire)
• Notion de proposition atomique (formule atomique) = enoncé indécomposable– il_pleut, la_route_est_mouillée, ...
plus abstraitement : p, q, ...
Alphabet
• Définition (alphabet). L'alphabetde la logique propositionnelle est constitué de :– un ensemble dénombrable ATM de variables
propositionnelles(ou formules atomiques, ou encore
11
propositionnelles(ou formules atomiques, ou encore atomes)
– les connecteursFALSE , ¬ , ∧ , v , ->
– les séparateurs (ou parenthèses) ( et )
• Notation : nous utilisons p, q, r, p1, p2 ,... pour des variables propositionnelles.
Formules
• Définition (formule). L'ensemble FOR des formules(ou formules bien formées) de la logique propositionnelle est le plus petit ensemble de mots construits sur l'alphabet tel que :
12
mots construits sur l'alphabet tel que :– si A est une formule atomique alors A est une formule
– FALSE est une formule
– (¬ A) est une formule si A est une formule
– (A ∧ B) est une formule si A et B sont des formules
– (A v B) est une formule si A et B sont des formules
– (A -> B) est une formule si A et B sont des formules
Exemples de formules
formules bien formées `non formules'
p p ∧(¬ p) p ¬ q
FALSE ∧ p
13
FALSE ∧ p
(p ∧ q) (∧ )
(¬(p ∧ q) v r) (p
(q -> (r v q)) (q -> (r v q)
Notation et Remarque
• Nous utilisons A , B , C , A1 , A2,... pour des formules – (strictement parlant, A,B,... sont des metavariables, car
ils ne font pas partie de l'alphabet de la logique). S , S1 , S2 ,... dénotent des ensembles de formules.
14
S2 ,... dénotent des ensembles de formules.
• Notre jeu de connecteurs primitifs consiste en :– FALSE , ¬, ∧, v , -> . – D'autres connecteurs peuvent être définis en tant que
abréviations : • TRUE abrévie (¬ FALSE) et l'équivalence (A <-> B) abrévie
((A -> B) ∧ (B -> A)) .
Jeux de connecteurs alternatifs
• Notre jeu de connecteurs primitifs est {FALSE , ¬, ∧ , v , ->}. – Parfois on choisit {-> , FALSE} comme jeu de
connecteurs primitifs, et on définit
15
connecteurs primitifs, et on définit • ¬ A comme A -> FALSE, • A v B comme (A -> FALSE) -> B, et • A ∧ B comme (A -> (B-> FALSE)) -> FALSE.
– Il est aussi possible de déclarer {¬ , ∧ , v} primitifs, et de définir
• FALSE comme p ∧ ¬ p, pour un atome p quelconque, et • A -> B comme ¬ A v B.
Jeux de connecteurs alternatifs
• Les différentes formes normales et méthodes de démonstration automatique peuvent opérer sur des jeux de connecteurs primitifs différents, – ont souvent recours à l’élimination préable de connecteurs.
• Le jeu de connecteurs {-> , FALSE} est minimal,
16
• Le jeu de connecteurs {-> , FALSE} est minimal,– dans le sens qu'il n'existe pas de jeu plus petit permettant de
définir toutes les autres connecteurs.
• Le jeu {¬ , ∧ , v} n'est pas minimal, si on admet que A v B peut être défini comme ¬(¬ A ∧ ¬ B).
• Par contre, {∧ , ¬} et {v , ¬} sont minimaux, ainsi que {-> , ¬}.
Sous- formule• Définition (sous-formule).L'ensemble des sous-
formulesd'une formule A est le plus petit ensemble tel que :– A est une sous-formule de A. – Si (¬ B) est une sous-formule de A alors B est une sous-
formule de A.
17
formule de A. – Si (B ∧ C) est une sous-formule de A alors B et C sont des
sous-formules de A. – Si (B v C) est une sous-formule de A alors B et C sont des
sous-formules de A. – Si (B -> C) est une sous-formule de A alors B et C sont des
sous-formules de A.
• L'endroit où une sous-formule apparaît est son occurrence.
Sous- formule (exemple)
• Soit la formule ((p v q) ∧ ¬ p).– p en est une sous-formule, ainsi que (p v q) et (¬ p),
tandis que (q ∧ ¬ p) ne l'est pas.
– p a deux occurrences dans ((p v q) ∧ ¬ p), et (p v q)
18
– p a deux occurrences dans ((p v q) ∧ ¬ p), et (p v q) une.
• l'ensemble des sous-formules de
(((p v q) ∧ ¬ p) -> FALSE) est :– { (((p v q) ∧ ¬ p) -> FALSE) , ((p v q) ∧ ¬ p) , FALSE
, (p v q) , (¬ p) , p , q }.
Substitution
• Définition (substitution uniforme). Une substitution(ou substitution uniforme) associe à une variable propositionnelle p une formule A . Elle est notée [p\A].
19
Elle est notée [p\A]. L'application de [p\A] à une formule B , notée (B)[p\A], est le résultat du remplacement simultanéde toutesles occurrences de p dans B par A. (B)[p\A] est appelé une instancede B.
Substitution (exemple)• (p v q)[p\r] = r v q
• (p -> q)[q\p] = p -> p
• (p -> q)[r\s] = p -> q
• ((p v q) ∧ ¬ p)[p\ ¬ p] = (¬ p v q) ∧ ¬ ¬ p
20
• ((p v q) ∧ ¬ p)[p\ ¬ p] = (¬ p v q) ∧ ¬ ¬ p
• ((p v q) ∧ ¬ p)[p\(r ∧ s)] = ((r ∧ s) v q) ∧ ¬(r ∧ s)
• (p -> r)[p\(q -> s)] = (q -> s) -> r
• N.B. : remarquer l'importance du parenthésage dans les deux derniers exemples
Parenthèses: Notation
• On omet toujours les parenthèses les plus à l'extérieur. En général, l'omission de parenthèses peut être source d'ambiguïtés : – ainsi, ¬ p ∧ q peut correspondre à (¬ p) ∧ q et à ¬(p ∧ q),
21
• Cependant, on peut souvent omettre les parenthèses en donnant des priorités aux connecteurs, dans l'ordre suivant : <-> , -> , ∧ , v , ¬. – Ainsi, ¬ p ∧ q correspond à (¬ p) ∧ q , etc.
Théorie des modèles
• En théorie des modèles, on fixe d'abord un ensemble de modèles (aussi appellés valuations ou interpretations).
• Ensuite, pour un modèle donné, on stipule des conditions de vérité permettant d'établir pour n'importe
22
conditions de vérité permettant d'établir pour n'importe quelle formule A du langage si A est vraie ou fausse dans ce modèle.
• Pour la logique propositionnelle, les notions de modèle et de vérité dans un modèle sont déterminés par les deux postulats suivants :
Théorie des modèles pour la Logique Propositionnelle
• Bivalence: une formule est soit vraie, soit fausse,• Vérifonctionnalité: la valeur de vérité d'une formule
non-atomique est déterminée par les valeurs de ses constituants.
23
constituants.• Nous acceptons ces deux postulats:
– Il suffit alors de définir, pour chaque connecteur, son comportement par rapport à ses sous-formules immédiates
• permettre d'associer une valeur de vérité à chaque formule, étant donné une attribution de valeurs de vérité aux variables propositionnelles.
• C'est ce qu'on appelle les tables de vérité pour un connecteur.
Tables de véritéA ¬ A 0 1
1 0
A B A ∧ B A v B A -> B
0 0 0 0 1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 1
24
• Chaque ligne d'une table de vérité, pour une formule A, donne les valeurs de vérité pour toutes les variables propositionnelles apparaissant dans A. – Ceci peut être vue comme la description d'un état possible
du monde.
• Généralement, c'est une application de l'ensemble des variables propositionnelles ATM dans {0,1}, qu'on appellera interpretation.
Interprétation• Définition (interprétation). Une interprétation I (ou valuation)
est une application de l’ensemble des var. prop. ATM dans l'ensemble des valeurs de vérité {0,1}.
• Définition (interprétation des formules).Une interpretation donnée I peut être étendueà l’ensemble des formules FOR par : – I(FALSE) = 0
25
– I(FALSE) = 0 – I(¬ A) = 1 - I(A) – I(A ∧ B) = min(I(A),I(B)) – I(A v B) = max(I(A),I(B)) – I(A -> B) = 1 ssi I(A) = 0 ou I(B) = 1
• I est un modèle pour A(ou I satisfaitA) ssi I(A) = 1. • I(A) = 1 est parfois noté |=I A . • I est un modèle pour un ensemble de formules S ssi I est un
modèle pour toute formule A de S.
Interpretation: Exemple
• Soit ATM = {p1, p2, ...}. Alors l'application I telle que I(p1) = 1, I(p2) = I(p3) = ... = 0 est une interpretation.
• L'interprétation étendue correspondante est un
26
• L'interprétation étendue correspondante est un modèle pour p1 v p2 et (p1 ∧ p2) -> (p1 ∧ p1), mais non pour p1 ∧ (p2 v ¬ p1) : – I(p1 v p2) = 1 – I((p1 ∧ p2) -> (p1 ∧ p1)) = 1 – I(p1 ∧ (p2 v ¬ p1)) = 0
Validité, satisfiabilité• Définition (validité, satisfiabilité). Soit A
une formule. – A est valide(ou tautologique ; noté |= A) si
I(A) = 1 pour toute interpretationI. Sinon A est invalide ou falsifiable.
27
invalide ou falsifiable. – A est satisfiable(ou consistante) ssi il existe
une interpretation I t.q. I(A) = 1. Sinon A est insatisfiable ou contradictoire.
Validité, satisfiabilité: remarque
• A est insatisfiable si I(A) = 0 pour toute interpretation I, et
• A est invalide si il existe une interpretation I
28
• A est invalide si il existe une interpretation I t.q. I(A) = 0.
• Les formules valides sont forcément satisfiables, et les formules insatisfiables sont forcément falsifiables (invalides).
Validité, satisfiabilité: exemple
F. valides F. satisfiables et invalides F.insatisfiables
p v ¬ p p p ∧ ¬ p
p v ¬ p v q p v q FALSE
29
p v ¬ p v q p v q FALSE
q -> q p -> q p ∧ ¬ p ∧ q
Conséquence logique• Définition (conséquence logique).Une formule A
est conséquence logiquede A1, ... ,An (noté A1, ... ,An|= A) ssi tout modèle de A1, ... ,An est un modèle de A.
• Exemple
30
• Exemple{ p} |= p {p , q} |= p {p , q} |= q
{p , q} |= q ∧ p {p , p -> q} |= q
Conséquence logique: remarque• On peut généraliser la définition de conséquence
logique à des ensembles d'hypothèses quelconques, qui peuvent en particulier être infinis.
• Une formule A est alors conséquence logique d'un ensemble de formules S (noté S |= A) ssi tout modèle
31
ensemble de formules S (noté S |= A) ssi tout modèle de S est un modèle de A. – Par abus de notation, on écrit alors souvent A1,...,An |= B à
la place de {A1,...,An} |= B, et donc A |= B à la place de {A} |= B.
– Et même, S, A |= B à la place de S ∪ {A} |= B (où ∪ denote l'union ensembliste).
Théorie de la preuve
• L'objectif, est de donner une caractérisation finie des formules valides, en se basant sur :– les axiomes : un (petit) ensemble de `vérités
premières', etsur
32
premières', etsur
– les règles d'inférence : un (petit) ensemble de règles permettant de produire toutes les vérités.
Théorie de la preuve (1)• Définition (axiomatique à la Hilbert). Les schémas d'axiomede
la logique propositionnelle sont:A -> (B -> A)
(A -> B) -> ((A -> (B -> C)) -> (A -> C))
A -> (B -> A ∧ B)
(A ∧ B) -> A
(A ∧ B) -> B
33
(A ∧ B) -> B
A -> A v B
B -> A v B
(A -> C) -> ((B -> C) -> (A v B -> C))
(A -> B) -> ((A -> ¬ B) -> ¬ A)
¬ ¬ A -> A
¬ FALSE
• et la règle d'inférenceest le Modus Ponens : A A -> B _____________
B
Théorie de la preuve (2)
• Chaque formule qui a la forme d'un schéma est appelée un axiome. – Ainsi, un axiome est une instance d'un schéma.
• (p ∧ q) -> (r -> (p ∧ q)) est un axiome, obtenu à partir du
34
• (p ∧ q) -> (r -> (p ∧ q)) est un axiome, obtenu à partir du premier schéma A -> (B -> A).
• A , B , C sont des schémas de formules (représentant des formules complexes, pas forcement atomiques). – On peut éviter ces schémas d'axiomes et travailler avec
des axiomes.
Théorie de la preuve (3)• le premier schéma d'axiome deviendrait l'axiome
– p -> (q -> p), où p et q ne sont pas des schémas de formules mais des variables propositionnelles (formules atomiques).
– Dans ce cas, on a besoin de la règle de substitution uniforme :
35
uniforme :
A ___________
A[p\B] • Cette règle pourra alors également être appliquée
dans les preuves.
Preuve
• Définition (preuve). Soit A une formule. Une preuvede A est une liste finie de formules (A1, ... ,An) t.q. – A = A
36
– An = A
– pour i = 1, ..., n, la formule Ai est • soit l'instance d'un axiome,
• soit obtenue par application de la règle de Modus Ponens à partir de deux prémisses Aj, Ak précédant Aidans la liste.
Preuve: Exemple
• Preuve de A -> A :
1. A -> (A -> A) instance de A -> (B -> A)
2. (A -> (A -> A)) -> ((A -> ((A -> A) -> A)) -> (A -> A)) instance de (A -> B) -> ((A -> (B -> C)) -> (A -> C))
37
instance de (A -> B) -> ((A -> (B -> C)) -> (A -> C))
3. ((A -> ((A -> A) -> A)) -> (A -> A)) obtenue par Modus Ponens à partir de 1. et 2.
4. A -> ((A -> A) -> A) instance de A -> (B -> A)
5. A -> A obtenue par Modus Ponens à partir de 3. et 4.
Prouvabilité, consistance
• Définition (prouvabilité, consistance).Soit A une formule. – A est prouvable(noté |- A) si il existe une
38
– A est prouvable(noté |- A) si il existe une preuve de A.
– A est consistantesi ¬ A n'est pas prouvable. Sinon A est inconsistante.
Prouvabilité, consistance: exemple
F. Prouvables F. Consistantes et Non prouv. F. Inconsistantes
• p v ¬ p p p ∧ ¬ p
• p v ¬ p v q p v q FALSE
39
• p v ¬ p v q p v q FALSE
• q -> q p -> q p ∧ ¬ p ∧ q
• (p ∧ q) -> (q ∧ p) q -> (q ∧ p) (p v q) ∧ ¬ p ∧ ¬ q
Déduction
• Définition (déduction). Une déductiond'une formule A à partir d'hypothèses B1,...,Bm (noté B1,...,Bm |- A) est une liste finie de formules (A1, ... ,An) t.q. – An = A – pour i = 1, ...,n, la formule Aest
40
– pour i = 1, ...,n, la formule Ai est • soit un axiome, • soit égal à une des hypothèses Bj, • soit obtenue par application de la règle de Modus Ponens à
partir de deux prémisses Aj, Ak précédant Ai dans la liste.
• Donc une preuve est une déduction à partir d'un ensemble vide d'hypothèses
Déduction: exemple
• p |- p
• p , q |- p
• p , q |- q
41
• p , q |- q
• p , q |- q ∧ p
• p , p -> q |- q
Propriétés importantes
• Quel est le rapport entre validité et prouvabilité ? – théorie des modèles : définition de la notion de validité
– théorie de la preuve : définition de la notion de prouvabilité
42
prouvabilité
• Les notionsde validité et de prouvabilité devraient caractériser les mêmes formules.
Adéquation et complétude
• Lemme (la règle du modus ponens préserve la validité). Si |= A et |= A -> B alors |= B.
• Lemme (la substitution uniforme préserve la validité). Soient A et B des formules et p un
43
validité). Soient A et B des formules et p un atome. Si |= A alors |= A[p\B].
• Théorème d'adéquation.Si |- A alors |= A. – la démonstration utilise les lemmes précédents, et le fait
que les axiomes sont valides;
• Théorème de complétude.Si |= A alors |- A.
Théorème de déduction
• Théorème de déduction.A |- B ssi |- A -> B. – Donc le problème de déduction A |- B peut être
réduit au problème de prouvabilité |- A -> B .
• Théorème de la conséquence logique
44
• Théorème de la conséquence logique– version sémantique du théorème de déduction.
A |= B ssi |= A -> B.
• Donc le problème de conséquence logique A |= B peut être réduit au problème de validité |= A -> B
Adéquation et complétude forte
• Théorème d'adéquation forte.Si A1,...,An |- A alors A1,...,An |= A.
45
• Théorème de complétude forte.Si A1,...,An |= A alors A1,...,An |- A.
Décidabilité• Théorème (existence d'une procédure de
décision).La logique propositionnelle est décidable : il existe une procédure effective qui pour toute formule A en entrée s'arrête et retourne `oui' si A est valide, et `non' sinon. – Un exemple de procédure de décision est la méthode des
tables de véritéou la méthode de balayage(plus efficace)
46
tables de véritéou la méthode de balayage(plus efficace)
• L'axiomatique est une carac. finie des F. valides : – Peut être `rendue opérationelle' comme procédure
énumerant l'ensemble des formules prouvables. – Mais donne qu'une procédure de semi-décision :
• si la formule en question est valide, cette procédure va la trouver un jour, mais si elle ne l'est pas alors la procédure ne s'arrêtera jamais.
Remplacement des équivalences logiques
• Théorème (remplacement des équivalences).Soit B une sous-formule de A, et soit |- B <-> C . Si A' est obtenue à partir de A par le remplacement de cette occurrences de B par C alors |- A <-> A'.
47
cette occurrences de B par C alors |- A <-> A'.
• Remarque. Le remplacement en question n'est pas une substitution uniforme puisque,– cette dernière ne s'applique qu'aux atomes, et non à des
formules ; de plus, elle s'applique à toutesles occurrences, et non à une ou plusieurs.
Remplacement des équivalences: Exemple
• Soit la formule p1 v (p2 v p3). – En remplaçant p2 v p3 par p3 v p2 nous obtenons
p1 v (p3 v p2).
48
p1 v (p3 v p2).
– Comme |- p2 v p3 <-> p3 v p2, nous avons
|- p1 v (p2 v p3) <-> p1 v (p3 v p2).
• Corollaire. Soit |- A <-> B et |- B <-> C. Alors |- A <-> C.
Equivalences permettant d'éliminer des connecteurs
• élimination de l'implication : |- A -> B <-> ¬ A v B
• élimination de l'équivalence :
49
• élimination de l'équivalence : |- (A <-> B) <-> (A -> B) ∧ (B -> A)
• élimination de FALSE : |- FALSE <-> p ∧ ¬ p (pour un p quelconque)
• élimination de la négation : |- ¬ A <-> A -> FALSE
Equivalences permettant d'éliminer des connecteurs
• éliminations de la disjonction : |- A v B <-> ¬(¬ A ∧ ¬ B)
|- A v B <-> (A -> FALSE) -> B
50
|- A v B <-> (A -> FALSE) -> B
• éliminations de la conjonction : |- A ∧ B <-> ¬(¬ A v ¬ B)
|- A ∧ B <-> (A -> (B-> FALSE)) -> FALSE
Equivalences et propriétés algébriques des connecteurs
• idempotence de ¬ : |- ¬ ¬ A <-> A
• idempotence de ∧ et v : |- A ∧ A <-> A
51
• idempotence de ∧ et v : |- A ∧ A <-> A
• |- A v A <-> A
• associativité de ∧ et v : • |- A ∧ (B ∧ C) <-> (A ∧ B) ∧ C
• |- A v (B v C) <-> (A v B) v C
Equivalences et propriétés algébriques des connecteurs
• commutativité de ∧ et v : • |- A ∧ B <-> B ∧ A
52
• |- A B <-> B A
• |- A v B <-> B v A
• distributivité (lois de De Morgan) : • |- (A v B) ∧ C <-> (A ∧ C) v (B ∧ C)
• |- (A ∧ B) v C <-> (A v C) ∧ (B v C)
Forme normale conjonctive• mise en forme normale = simplification de
formules complexes • Souvent, étape préalable des procédures de
démonstration automatique • Définition (littéral, clause, forme normale
53
• Définition (littéral, clause, forme normale conjonctive).– Un littéral est une formule atomique ou la négation
d'une formule atomique. – Une clauseest une disjonction de littéraux. – Une formule est en forme normale conjonctivesi elle est
une conjonction de clauses.
ExemplesForme Normale Conjonctive (FNC) pas en forme NC
p v ¬ q FALSE ¬ p ∧ q p -> q ¬ p ∧ p ¬ ¬ p
54
(¬ p v q) ∧ r ¬(p ∧ q) (¬ p v q) ∧ (r v ¬ s) (¬(p ∧ q) v r)
• Notation.Nous utilisons L, L1 , L2 ... pour des littéraux, et C, C1 , C2 ... pour des clauses.
FNC: notation
• On suppose que les disjonctions et conjonctions sont parenthésées à gauche : – une clause L1 v L2 v ... v Ln est ((...(L1 v L2) v ...) v Ln),
et une conjonction de clauses C1 ∧ C2 ... ∧ Cm est
55
et une conjonction de clauses C1 ∧ C2 ... ∧ Cm est ((...(C1 ∧ C2) ...) ∧ Cm).
– Ceci est justifié parl’associativité de la conjonction et de la disjonction.
• Par convention, une disjonction de 0 littéraux est FALSE (la clause vide), et une conjonction de 0 clauses est TRUE.
FNC: notation
• Nous confondons une conjonction de clauses avec un ensemble de clauses, et une clause avec un ensemble de littéraux. – Ceci est justifié parla commutativité et l’idempotence
56
– Ceci est justifié parla commutativité et l’idempotence de la conjonction et de la disjonction.
– Ainsi, la formule en forme normale conjonctive (p v q) ∧ (¬ p v r) sera confondu avec l'ensemble { {p v q} , { ¬ p v r} }.
– La clause vide FALSE sera confondu avec l'ensemble vide {}.
Algorithme de mise en oeuvre en FNC
Entrée : une formule A, Sortie : une formule en forme normale conjonctive
début– Éliminer ->, <->, FALSE;
57
– appliquer autant que possible les équivalences suivantes (en remplaçant le membre gauche par le membre droit), dans n'importe quel ordre : ¬ ¬ A <-> A ¬(A v B) <-> ¬ A ∧ ¬ B ¬(A ∧ B) <-> ¬ A v ¬ B A v (B ∧ C) <-> (A v B) ∧ (A v C)
fin
FNC: Exemple• (p ∧ q) v (r ∧ s) : 1. ((p ∧ q) v r) ∧ ((p ∧ q) v s) 2. ( p v r) ∧ ( q v r) ∧ ((p ∧ q) v s) 3. ( p v r) ∧ ( q v r) ∧ ( p v s) ∧ ( q v s)
58
• (p -> q) -> p : 1. ¬(¬ p v q) v p 2. (¬ ¬ p ∧ ¬ q) v p 3. ( p ∧ ¬ q) v p 4. (p v p) ∧ (¬ q v p)
FNC: théorèmes
• Théorème.Pour toute entrée A, l'algorithme de mise en forme normale conjonctive s'arrête. Il retourne une formule en forme normale conjonctive équivalente à l'entrée.
59
l'entrée. – la démonstration utilise le Th. de la substitution des
équivalences: les remplacements effectués par l'algorithmecorrespondent à des équivalences prouvables;
• Théorème.Une formule en forme normale conjonctive est valide ssi toute clause contient deux littéraux contradictoires, c-à-d chaque clause est de la forme
L1 v ... v p v ... v ¬ p v ... v Ln.
Démonstration automatique (1)
• Nécessité d'une procédure de décision :– comment savoir si une formule donnée A est valide ?
• Problème de l'explosion combinatoire lorsqu'on
60
utilise directement la définition de la validité:– Une méthode naïve consiste à vérifier, pour toute
interpretation I, si I(A) = 1. En ne considérant que les atomes p1,...,pn apparaîssant dans A, le nombre de vérifications est exponentiel en n (la table de vérité pour A aura 2n lignes).
Démonstration automatique (2)
• Tandis que les tables de vérité explorent donc `en bloc' toutes les valeurs de vérité possibles pour les atomes,
61
– ceci sera fait d'une manière incrémentale dans la méthode de balayage.
• Problème de trouver les `bonnes formules' lorsqu'on utilise directement la déf. de la prouvabilité.
Algorithme de balayageentrée :une formule A sortie : TRUE ou FALSE débutÉliminer ->, <->tant que non(A = TRUE) et non(A = FALSE) faire
• choisir une variable propositionnelle p apparaîssant dans A ; • remplacer A par la formule A [p\TRUE] ∧ A[p\FALSE]; • appliquer autant que possible les équivalences suivantes (en remplaçant le
membre gauche par le membre droit), dans n'importe quel ordre :
62
membre gauche par le membre droit), dans n'importe quel ordre : ¬ FALSE <-> TRUE ¬ TRUE <-> FALSE B v TRUE <-> TRUE B ∧ FALSE <-> FALSE B ∧ TRUE <-> B B v FALSE <-> B
fin tant quefin
Remarque: La liste des équivalences utilisées n'est pas complète : on a supposé implicitement que la commutativité de ∧ et de v est exploitée.
Exemples• (p -> q) -> p :
1. élimination de -> ¬(¬ p v q) v p
2. choix de p et substitution (¬(¬ TRUE v q) v TRUE) ∧ (¬(¬ FALSE v q) v FALSE)
63
(¬(¬ TRUE v q) v TRUE) ∧ (¬(¬ FALSE v q) v FALSE)
3. simplification TRUE ∧ ¬(¬ FALSE v q) ¬(¬ FALSE v q) ¬(TRUE v q) ¬ TRUE FALSE
Exemple• La même formule, en commençant par substituer q : 1. élimination de ->
¬(¬ p v q) v p 2. choix de q et substitution
(¬(¬ p v TRUE) v p) ∧ (¬(¬ p v FALSE) v p) 3. simplification
(¬ TRUE v p) ∧ (¬ ¬ p v p)
64
(¬ TRUE v p) ∧ (¬ ¬ p v p) (FALSE v p) ∧ (¬ ¬ p v p) p ∧(¬ ¬ p v p)
4. choix de p et substitution (TRUE ∧ (¬ ¬ TRUE v TRUE)) ∧ (FALSE ∧ (¬ ¬ FALSE v FALSE))
5. simplification (¬ ¬ TRUE v TRUE) ∧ FALSE FALSE
Remarque et propriétés• Remarque.Les exemples montrent que le choix de l'atome à
substituer est crucial (une heuristique possible est de choisir l'atome qui a le plus d'occurrences dans A).
• Théorème.Pour tout entrée A, l'algorithme de balayage s'arrête. Il retourne TRUE si A est valide, et FALSE sinon.
65
FALSE sinon. • Démonstration: la terminaison de l’algo. est assurée
par le fait que:– chaque passage de la boucle élimine un atome.– Ensuite, comme |= A ssi A[p\TRUE] ∧ A[p\FALSE], la
deuxième étape préserve la validité. – Finalement, les simplifications correspondent à des
équivalences valides.
Chapitre 2
Logique des prédicats
66
Logique des prédicats
N. Hameurlain
Plan
• Langages: variables d’individu, substitution de variables;
• Théorie des modèles (sémantique);
67
• Théorie de la preuve (axiomatique);
• Propriétés importantes: complétude, équivalence utiles;
• Formes normales: prénexe, de Skolem, clausale;
• Démonstration automatique (méthode de résolution).
Introduction et motivation• En logique des propositions on se limite à des
connecteurs propositionnels (connecteurs associant des propositions, et non des variables et des propositions).
68
et des propositions). – Ceci ne permet pas de rendre compte de
raisonnements comme le suivant.
TOUT être humain est mortel. OR Socrate est un être humain. DONC Socrate est mortel.
Introduction et motivation
• Ce raisonnement repose sur une analyse plus fine des énoncés en termes d'énoncés génériques et énoncés singuliers. – Il utilise les notions d'objet et de propriété des objets.
69
– Il utilise les notions d'objet et de propriété des objets.• On les écrira sous la forme être-humain(Socrate) : Socrate est
l'objet, et être-humain est la propriété.
– être-humain(Socrate) étant un énoncé singulier, les énoncés génériques nécessiteront l'emploi du quantificateur universel ∀ .
• Ainsi, `` TOUT être humain est mortel '' peut être traduit comme (∀ x) (être-humain(x) -> mortel(x)) .
Remarques (1)
• ∀ rappelle la similarité avec la conjonction : – Si on se limite à un ensemble fini d'objets o1,...,on alors
(∀ x) p(x) correspond à la conjonction p(o1) ∧ ... ∧ p(on)
70
• Une notion plus générale que celle de propriété est celle de prédicat, qui permet d'exprimer une relation entre plusieurs objets, comme père(Jean,Pierre)ou plus_petit_que(3,7).– Les atomes de la logique propositionnelle peuvent être
vus comme des prédicats à 0 arguments. Ceci justifie le nom logique des prédicats.
Remarques (2)
• La logique des prédicats est aussi appelée logique du premier ordre, par opposition à la logique de second ordre et aux logiques d'ordre supérieur (qui contrairement à la
71
d'ordre supérieur (qui contrairement à la logique des prédicats permettent de représenter la théorie des ensembles). – La logique propositionnelle peut alors être vue
comme logique d'ordre 0.
Logique des prédicats : langage
• Définition (alphabet). L'alphabetde la logique des prédicats est constitué de: – un ensemble dénombrable de symboles de prédicats à 0, 1, ou
plusieurs arguments, notés p, q, r, ..., homme, mortel, père, ...
72
– un ensemble dénombrable de variables d'objets (ou variables d'individu), notées x, y, z, x1, x2, ...
– un ensemble dénombrable de fonctions à 0, 1, ou plusieurs arguments, notées f, g, ... , père-de, ...
– les quantificateurs ∀, ∃– les connecteurs FALSE, ¬ ∧ , v, -> ainsi que les parenthèses
de la logique propositionnelle.
Log. des prédicats: Notation
• Q dénote un quantificateur quelconque, c-à-d ∀ ou ∃.
• Les fonctions à 0 arguments sont appelées
73
• Les fonctions à 0 arguments sont appelées constantes (souvent notées a, b, ..., Socrate, ...).
• Les prédicats à 0 arguments ne sont rien d'autre que des variables propositionnelles
Log. des prédicats: langage
• Définition (terme). L'ensemble des termesest le plus petit ensemble de mots construits sur l'alphabet de la logique des prédicats tel
74
sur l'alphabet de la logique des prédicats tel que – toute variable est un terme
– f(t1,...,tn) est un terme si f est une fonction à n arguments et t1,...,tn sont des termes
Formule
• Définition (formule). Si p est un prédicat à n arguments et t1,...,tn sont des termes alors p(t1,...,tn) est une formule atomique. L'ensemble FOR des formules(ou formules bien formées) de la logique des prédicats est alors défini
75
formées) de la logique des prédicats est alors défini de la même manière qu’ en logique propositionnelle, en rajoutant une clause pour les quantificateurs : – (Q x A) est une formule si Q est un quantificateur, x une
variable et A une formule
• Une expressionest un terme ou une formule.
Définition explicite des formules• Définition. L'ensemble FOR des formules(ou formules
bien formées) de la logique des prédicats est le plus petit ensemble de mots construits sur l'alphabet tel que:– si p est un prédicat à n arguments et t1,...,tn sont des termes
alors p(t,...,t ) est une formule (appelée formule atomique),
76
alors p(t1,...,tn) est une formule (appelée formule atomique),
– (Q x A) est une formule si A est une formule, Q un quantificateur et x une variable
– FALSE est une formule
– (¬ A) est une formule si A est une formule
– (A ∧ B), (A v B), (A -> B) sont des formules si A et B sont des formules.
Exemples de traduction• `` Tout est relatif. '' ∀ x relatif(x) • `` Une porte est ouverte ou fermée. ''
∀ x (porte(x) -> (ouvert(x) v fermé(x)))• `` Tout ce qui brille n'est pas or. ''
∃ x (brille(x) ∧ ¬ or(x)) ``• Il y a des peines, il y a des plaisirs, mais aucune peine n'est
un plaisir. '' (∃ x peine(x)) ∧ (∃ x plaisir(x)) ∀ x
77
• Il y a des peines, il y a des plaisirs, mais aucune peine n'est un plaisir. '' (∃ x peine(x)) ∧ (∃ x plaisir(x)) ∧ ∀ x
(peine(x) -> ¬ plaisir(x)) • `` Tous les chemins mènent à Rome. ''
∀ x (chemin(x) -> mène-à-Rome(x))• `` Pour tout entier il existe un entier plus grand. ''
∀ x (entier(x) -> ∃ y (entier(y) ∧ plus-grand(y,x)) ) • `` Il existe un plus grand entier. ''
∃ x (entier(x) ∧ ∀ y (entier(y) -> plus-grand(x,y)) )
Jeux de connecteurs primitifs
• Notre présentation avec les connecteurs primitifs ∀ et ∃ peut être remplacée par une présentation avec seulement l'un des deux primitif :
78
primitif : – Si ∀ est primitif alors ∃ peut être défini en tant
que abréviation : ∃ x A abrévie ¬ (∀ x ¬A).
– Si ∃ est primitif alors ∀ peut être défini en tant que abréviation : ∀ x A abrévie ¬ (∃ x ¬A).
Variables libres, liées
• Définition (portée d'un quantificateur, variable libre). Dans les formules (∀ x A) et (∃ x A) , A est appellé la portéedu quantificateur. Une occurrence d'une variable est libre si elle n'est dans la portée d'aucun quantificateur. Sinon elle est
79
dans la portée d'aucun quantificateur. Sinon elle est liée.
• Définition (formule fermée, formule ouverte).Une formule est fermée(ou close) si elle ne contient pas de variables libres. Sinon elle est ouverte.
Variables libres, liées: exemples
• Dans ∀ y ((p(x) v ∃ x p(x)) ∧ q(y))– la première occurrence de x est libre, tandis que la
deuxième occurrence est liée. L'occurrence de y est liée.
• La formule A = ∀ y ((p(x) v ∃ x p(x)) ∧ q(y)) est
80
• La formule A = ∀ y ((p(x) v ∃ x p(x)) ∧ q(y)) est ouverte, car il y a une occurrence de variable libre.
• La formule ∀ x ∀ y ((p(x) v ∃ x p(x)) ∧ q(y)) est fermée (c'est la fermeture universelle de A).
• La formule ∃ x ∀ y ((p(x) v ∃ x p(x)) ∧ q(y)) est également fermée (c'est la fermeture existentielle de A).
Substitution de variables• Définition (substitution de variables).Une
substitution de variablesest une application des variables dans les termes qui est l'identité presque partout. – L'application d'une substitution à une expression E est
81
– L'application d'une substitution à une expression E est le résultat du remplacement simultanéede toutesles occurrences libres des variables dans E par leur terme associé. Si E est une expression alors (E)s est appelé une instancede E.
– La composition de substitutionsest la composition de fonctions.
Notation et exemples• Soit {x1 , ... , xn} l'ensemble des variables tel que s(x) est différent de
x. La substitution s est alors notée s = {x1\t1 , ... , xn\tn}.
• Exemples:– (p(x) v q(x,y)){x\z} = p(z) v q(z,y)
– (p(x) v q(x,y)){x\y} = p(y) v q(y,y)
– (∀ x q(x,y)){x\z} = ∀ x q(x,y)
82
– (∀ x q(x,y)){x\z} = ∀ x q(x,y)
– (p(x) v q(x,y)){x\z,y\z} = p(z) v q(z,z)
– (p(x) v q(x,y)){x\f(x)} = p(f(x)) v q(f(x),y)
– (p(x) v q(x,y)){x\y,y\a} = p(y) v q(x,a)
– (p(x) v q(x,y)){x\y,y\x} = p(y) v q(x,x) ces deux derniers cas seront exclu lors de la définition des unifieurs
Théorie des modèles: introduction et motivation (1)
• On fixe d'abord un ensemble de modèles (aussi appelés valuations ou interprétations).
• Ensuite, pour un modèle donné, on stipule des conditions de vérité permettant d'établir pour
83
conditions de vérité permettant d'établir pour n'importe quelle formule A du langage si A est vraie ou fausse dans ce modèle.
• Pour donner un `sens' aux variables, constantes et fonctions du langage, il faut un domaine d'objets (ou domaine d'individu, ou univers de discours).
Théorie des modèles: introduction et motivation (2)
– À chaque variable et constante sera associé un élément du domaine. À chaque fonction sera associé une application dans le domaine.
• Ensuite, pour pouvoir donner un `sens' aux formules, il
84
• Ensuite, pour pouvoir donner un `sens' aux formules, il faut une fonction associant à chaque symbole de prédicat à n places l'ensemble des n-uplets d'éléments du domaine qui le rendent vrai.
• Finalement, l'interprétation des formules se fait comme en logique propositionnelle, avec comme interprétation de la quantification universelle ∀ x A `A est vrai pour toute interprétation de x'.
Interprétation
• Définition (interprétation). Une interprétationI est constituée de:– un ensemble non-videD appelé domaine d'individus,
– une fonction IV de l'ensemble des variables dans D,
85
– une fonction IF associant à chaque fonction à n arguments une application de Dn dans D,
– une fonction IP associant à chaque prédicat à n arguments un sous-ensemble de Dn ,
• Par abus de notation, les fonctions d'interprétation IV , IF , IP sont souvent notées I.
Interpretation des termes
• Définition (interprétation des termes et formules). Une interprétation donnée I peut être étendue aux termespar: I(f(t1,...,tn)) = (I(f))(I(t ),...,I(t ))
86
1 n(I(f))(I(t 1),...,I(tn))
• Une interprétation I' est une variante en x de I si I' est identique à I sauf en x (la seule différence entre I et I' est la valeur qu'elles donnent à x).
Interprétation sur les formules
• Une interprétation donnée I peut être étendue aux formulespar : – I(p(t1,...,tn)) = 1 ssi I(p) contient ( I(t1,...,I(tn) )
87
1 n 1 n
– I(∀ x A) = 1 ssi I'(A) = 1 pour toute variante I' de I en x,
– I(∃ x A) = 1 ssi il existe une variante I' de I en x telle que I'(A) = 1
– ainsi que les conditions de vérité des connecteurs propositionnels.
Interprétation: exemples
• Soit le domaine d'individus D = {Alice, Bernard, Christian}.
• Soit l'interprétation de variables telle que I(x) = Alice, I(y) = Bernard, I(z) = Christian.
• Soit l'interprétation des prédicats telle que I(aime) =
88
• Soit l'interprétation des prédicats telle que I(aime) = { (Alice,Bernard) , (Bernard,Alice) , (Christian,Alice) }.
• Le même domaine D avec l'interprétation de variables I' telle que I'(x) = Alice, I'(y) = Bernard = I' (z) et la même interprétation des prédicats est une variante de I en z.
Exemples (2)
I est un modèle de I n'est pas un modèle de aime(z,x) aime(x,z)
∃ z aime(x,z) ∀ z aime(z,x)
89
∀ x ¬ aime(x,x) ∃ x aime(x,x)
∃ x ∃ y aime(x,y) ∀ y ∃ x aime(x,y)
∀ x ∃ y aime(x,y) ∃ x ∀ y aime(x,y)
∃ u ∃ v (aime(u,v) ∧ aime(v,u)) ∃ y ∀ x aime(x,y)
Validité et satisfiabilité
• Comme en logique propositionnelle, I(A) = 1 est parfois noté |=I A , et nous dirons alors que I est un modèle de A.
90
que I est un modèle de A.
• Validité et satisfiabilité sont alors définies comme en logique propositionnelle, ainsi que la conséquence logique:
Validité et satisfiabilité: exemples• Formules valides Formules satisfiables et invalides
(∀∀∀∀ x p(x)) -> p(y) p(x) (∀∀∀∀ x p(x)) -> (∃∃∃∃ x p(x)) ∀∀∀∀ x p(x)
p(x) -> (∃∃∃∃ x p(x)) (∃∃∃∃ x p(x)) ∧ (∃∃∃∃ y ¬ p(y))
∃∃∃∃ x (p(x) -> (∀∀∀∀ x p(x))) ∀∀∀∀ x (p(x) -> (∀∀∀∀ x p(x)) (∃∃∃∃ x ∀∀∀∀ y p(x,y)) -> (∀∀∀∀ y ∃∃∃∃ x p(x,y)) (∀∀∀∀ y ∃∃∃∃ x p(x,y)) -> (∃∃∃∃ x ∀∀∀∀ y p(x,y))
91
(∃∃∃∃ x ∀∀∀∀ y p(x,y)) -> (∀∀∀∀ y ∃∃∃∃ x p(x,y)) (∀∀∀∀ y ∃∃∃∃ x p(x,y)) -> (∃∃∃∃ x ∀∀∀∀ y p(x,y))
• Formules insatisfiables
∀∀∀∀ x (p(x) ∧ ¬ p(x))
(∀∀∀∀ x p(x)) ∧ (∀∀∀∀ z ¬ p(z))
(∀∀∀∀ x p(x)) ∧ (∃∃∃∃ x ¬ p(x))
∀∀∀∀x (p(x) ∧ (∃∃∃∃ x ¬ p(x)))
Conséquences logiques: exemples
• { ∀ x p(x)} |= p(y)
• { ∀ x p(x)} |= ∃ x p(x)
92
• { ∀ x p(x)} |= ∃ x p(x)
• { ∀ x (p(x) - > q(x)) , ∃ y p(y) } |= ∃ y q(y)
Théorie de la preuveDéfinition (axiomatique à la Hilbert). Les schémas d'axiomede la logique des
prédicats sont ceux de la logique propositionnelle, plus ∀ x A -> ((A){x\t}) (A){x\t} -> ∃ x A
(où {x\t} est une substitution quelconque),
et les règles d'inférencesont le Modus Ponens :A A -> B
93
A A -> B _____________
B plus les deux règles pour les quantificateurs
A -> B ______________ s'il n'y a pas d'occurrence libre de x dans A
A -> (∀ x B) et
A -> B ______________ s'il n'y a pas d'occurrence libre de x dans B
(∃ x A) -> B
Preuve, prouvabilité, consistance• Même définition qu‘en logique propositionnelle.• Il est possible de définir également la déduction.
– Nous l'omettons ici, car elle est plus complexe que celle de la logique propositionnelle:
– les deux règles d'inférence pour les quantificateurs
94
– les deux règles d'inférence pour les quantificateurs peuvent seulement être appliquées à des axiomes logiques, et non à des axiomes non-logiques et des formules déduites à partir de ceux-ci.
• De plus, cette notion peut être réduite à la validité, par un théorème de la déduction similaire à celui de la logique propositionnelle.
Propriétés importantes: Adéquation, complétude, décidabilité
• Théorème d'adéquation.Si |- A alors |= A. • Théorème de complétude.Si |= A alors |- A.• Théorème (semi-décidabilité).La logique des
prédicats est semi-décidable : il existe une
95
prédicats est semi-décidable : il existe une procédure effective telle que pour toute formule A en entrée, – si A est valide alors la procédure s'arrête et retourne
`oui' – sinon ou bien la procédure s'arrête et retourne `non', ou
bien elle ne s'arrête pas.
Equivalences
• Equivalences propositionnelles. Ces principes peuvent être `importées' de la logique propositionnelle:– Théorème de remplacement des équivalences,
– Équivalence permettant d’éliminer les connecteurs,
96
– Équivalence permettant d’éliminer les connecteurs,
– Propriétés algébriques.
• Equivalences relatives aux quantificateurs– Ce sont les principes de base pour pouvoir mettre en forme
normale.
Equivalences relatives aux quantificateurs (1)
• Fermeture universelle : soit A sans occurrence libre de x. Alors |- A ssi |-∀ x A .
• Fermeture existentielle : soit A sans occurrence libre de x. Alors
∃
97
A est satisfiable ssi ∃ x A est satisfiable. • Quantification répétée :
|- (Q1 x Q2 x A) <-> Q2 x A • Quantification sans variable libre : soit A sans
occurrence libre de x. Alors |- (Q x A) <-> A |- (A){x\t} <-> A
Equivalences relatives aux quantificateurs (2)
• Renommage : |- (Q x A) <-> Q y (A){x\y} • Les deux cas où la distribution est possible :
|- (∀ x A) ∧ (∀ x B) <-> ∀ x (A ∧ B) |- (∃ x A) v (∃ x B) <-> ∃ x (A v B)
98
• Elargissement de la portée des quantificateurs : soit B sans occurrence libre de x. Alors
|- (Q x A) ∧ B <-> Q x (A ∧ B) |- (Q x A) v B <-> Q x (A v B)
• Remarques : Ces équivalences ne sont pas prouvables si x a des occurrences libres dans B : (∃ x p(x)) ∧ ¬ p(x) n'est pas équivalent à ∃ x (p(x) ∧ ¬ p(x)) .
Exemple d’application des équiv.• |- (∀ x ∀ y (p(x) ∧ q(y))) <-> ∀ x (p(x) ∧ q(x)) • On utilise les équivalences suivantes.
∀ x ∀ y (p(x) ∧ q(y)) <-> ∀ x (p(x) ∧ ∀ y q(y)) <-> (∀ x p(x)) ∧ ∀ y q(y)<-> (∀ x p(x)) ∧ ∀ x q(x) <-> ∀ x (p(x) ∧ q(x))
99
• On utilise donc successivement 1. l'élargissement de la portée de ∀ y (car il n'y a pas d'occurrence libre
de y dans p(x)) 2. l'élargissement de la portée de ∀ x, (car il n'y a pas d'occurrence libre
de x dans ∀ y q(y)) 3. le renommage de y 4. la distributivité de ∀ x sur la conjonction.
Ainsi que le fait que le remplacement des équivalences est valide.
Formes Normales• Problème : pour une formule A de la logique des prédicats il
n'existe pas toujours une formule en forme normale conjonctive équivalente (comme c'est le cas en logique propositionnelle).
• Il sera cependant possible d'obtenir une formule A' telle que A est satisfiable ssi A' est satisfiable. On procède en trois étapes :
– mise en forme normale prénexe: séparation en une suite de quantificateurs et une formule sans quantificateurs (la
100
quantificateurs et une formule sans quantificateurs (la matrice),
– mise en forme normale de Skolem: élimination des quantificateurs existentiels,
– mise en forme normale conjonctive de la matrice, en utilisant le même algorithme qu'en logique propositionnelle
Forme normale prénexe• Définition (forme normale prénexe).
Une formule A est en forme normale prénexesi elle est de la forme Qx1 ... Qxn B , où B est une formule sans quantificateurs. La suite des quantificateurs est appelée préfixe, et B est appellée matrice.
101
La suite des quantificateurs est appelée préfixe, et B est appellée matrice.
• Exemples: – La formule p(x) ∧ ¬ p(y) est en forme normale prénexe. – La formule ∀ x ∃ y ( (p(x) ∧ q(x,y)) v r(z)) est en forme normale
prénexe. ∀ x ∃ y est le préfixe, et (p(x) ∧ q(x,y)) v r(z) est la matrice.
Forme normale prénexe (2)
• Remarque: dans une formule en forme normale prénexe il peut y avoir des variables libres (comme z dans notre
102
variables libres (comme z dans notre exemple).
• Autre exemple: La formule
∃ x ( (p(x) -> ∀ x p(x) )
n'est pas en forme normale prénexe.
Algorithme de mise en forme prénexeEntrée : une formule A Sortie : une formule en forme normale prénexe débutEliminer ->, <->, FALSE; Appliquer autant que possible les équivalences suivantes, dans n'importe quel
ordre (en remplaçant le membre gauche par le membre droit) : ¬ ¬ A <-> A ¬(A v B) <-> ¬ A ∧ ¬ B ¬(A ∧ B) <-> ¬ A v ¬ B
103
¬(A ∧ B) <-> ¬ A v ¬ B ¬(∀ x A) <-> ∃ x ¬ A ¬(∃ x A) <-> ∀ x ¬ A tant que il existe une sous-formule Q x B telle que x apparaît en dehors de B dans
A faire
remplacer Q x B par Q y (B){x\y} , où y est une nouvelle variable (n'apparaissant pas dans A) ;
fin tant que; …
Algorithmede mise en forme prénexe (suite)…
Appliquer autant que possible les équivalences suivantes, dans n'importe quel ordre (en remplaçant le membre gauche par le membre droit) :
(Q x A) ∧ B <-> Q x (A ∧ B) (Q x A) v B <-> Q x (A v B) A ∧ (Q x B) <-> Q x (A ∧ B) A v (Q x B) <-> Q x (A v B)
104
A v (Q x B) <-> Q x (A v B) fin
• Exemple: Soit la formule ∃ x ( p(x) -> ∀ x p(x) ) 1.Éliminer -> : ∃ x (¬p(x) v ∀ x p(x) ) 2. Renommer ∀ x p(x) en ∀ y p(y) : ∃ x (¬p(x) v ∀ y p(y) ) 3. Sortir ∀ y : ∃ x ∀ y (¬p(x) v p(y) )
• Remarque : le renommage est essentiel ici ; p.ex. ∃ x (¬p(x) v ∀ x p(x) ) n'est pas équivalent à ∃ x ∀ x (¬p(x) v p(x) )
Algorithme de mise en forme prénexe
• Théorème.Pour toute entrée A, l'algorithme de mise en forme normale prénexe s'arrête. Il retourne une formule en forme normale prénexe équivalente à l'entrée.
105
– Démo: la démonstration utilise que les équivalences sont valides - en particulier ceux de la dernière étape reposent sur le fait que grâce au renommage de l'étape précédente toutes les occurrences de x sont dans la portée de Q x - , ainsi que le théorème de substitution des équivalences: les remplacements effectués par l'algorithme correspondent à des équivalences prouvables.
Forme normale de Skolem
• Définition (forme normale de Skolem).Une formule est en forme normale de Skolemsi elle est en forme normale prénexe
106
Skolemsi elle est en forme normale prénexe et ne contient pas de quantificateur existentiel.
• Exemple: La formule ∀x (p(x) ∧ ¬ p(y)) est en forme normale de Skolem.
Forme normale de Skolem: exemples
• La formule ∀ x ∃ y ( (p(x) ∧ q(x,y)) v r(z)) n'est pas en forme normale de Skolem, à cause de l'occurrence du quantificateur existentiel ∃ y.
107
l'occurrence du quantificateur existentiel ∃ y.
• Remarque: dans une formule en forme normale de Skolem il peut y avoir des variables libres (comme z dans notre exemple).
Algorithme de mise en forme normale de Skolem
Entrée : une formule A Sortie : une formule en forme normale de Skolem débutMettre A en forme normale prénexe;pour tout quantificateur existentiel ∃ x apparaissant dans A faire
- appliquer la substitution {x\f(x ,...,x )} à la matrice de A , où
108
- appliquer la substitution {x\f(x1,...,xn)} à la matrice de A , où x1,...,xn sont les quantificateurs universelsprécédant ∃ x dans le préfixe de A f est une nouvelle fonction qui n'a pas encore été utilisée ;
- supprimer ∃ x du préfixe de A fin pour toutfin
• Remarque: Si n = 0 on substitue par une constante.
Forme normale de Skolem: exemples de mise en forme
• Soit la formule ∃ x ∀ y p(x,y) :
Remplacer x par la constante a : ∀ y p(a,y)
109
• Soit la formule ∀ x ∃ y p(x,y) :
Remplacer y par la fonction f(x) : ∀ x p(x,f(x))
Forme normale de Skolem• Théorème.Pour toute formule d'entrée A, l'algorithme
de mise en forme normale de Skolem s'arrête. Il retourne une formule A' en forme normale de Skolem telle que A est satisfiable ssi A' est satisfiable. – Démo: la démonstration utilise que toutes les étapes
110
– Démo: la démonstration utilise que toutes les étapes préservent la satisfiabilité ; notons que la mise en forme normale prénexe préserve même l'équivalence logique)
• Remarque. Dualement, on obtient l'équivalence de validité si on remplace les variables quantifiées universellement par une fonction des variables quantifiées existentiellement.
Forme normale clausale• Définition (forme normale clausale).
Une formule est en forme normale clausalesi elle est en forme normale de skolem, fermée et et sa matrice est en forme normale conjonctive propositionnelle.
• Exemple1: la formule ∀ x ∀ y (p(x) ∧ ¬ p(y)) est en forme normale clausale.
111
forme normale clausale. • Exemple2: la formule ∀ x ∀ y ( (p(x) ∧ q(x,y)) v r(z))
n'est pas en forme normale clausale pour deux raisons :– d'une part, la matrice n'est pas en forme normale
conjonctive ;– d'autre part, elle n'est pas fermée car la variable z a une
occurrence libre.
Forme normale clausale: Algorithme
Entrée : une formule A Sortie : une formule en forme normale clausale
débutpour tout variable x apparaissant libre dans A faire
112
pour tout variable x apparaissant libre dans A faire
Fermer A existentiellement: remplacer A par ∃ x A
fin pour tout ;
Mettre A en forme normale de Skolem;
Mettre la matrice de A en forme normale conjonctive
fin
Mise en forme normale clausale: exemple (3)
• Soit la formule ∃ x ( p(x) -> ∀ x p(x) ) : 1. Mise en forme normale prénexe:
∃ x ∀ y (¬p(x) v p(y) )
113
∃ x ∀ y (¬p(x) v p(y) )
2. mise en forme normale de Skolem : ∀ y (¬p(a) v p(y) )
qui est aussi sa forme normale clausale ; l'ensemble de clauses associé est : { { ¬p(a)} , {p(y)} }
Forme normale clausale (3)
• Théorème.Pour toute entrée A, l'algorithme de mise en forme normale clausale s'arrête. Il retourne une formule A' en forme normale clausale telle que A est satisfiable ssi A' est
114
clausale telle que A est satisfiable ssi A' est satisfiable. – Démo: la démonstration est un corollaire du
théorème pour la forme normale de Skolem et du théorème pour la forme normale conjonctive de la logique propositionnelle.
Démonstration automatique: Motivation
• Même motivation de la nécessité d'une procédure de décision qu’en logique propositionnelle
• De plus, une conséquence de la semi-décidabilité de la logique des prédicats est qu'il n'existe aucune
115
la logique des prédicats est qu'il n'existe aucune procédure de décision pour la logique des prédicats: – pour chaque procédure il y aura des formules en entrée sur
lesquelles la procédure ne s'arrête pas (pas forcement les mêmes).
L’unification• Définition (unifieur). Une substitution s unifie
deux termes si elle les rend identiques : s unifie t et t' si (t)s = (t')s. Un unifieur d'un ensemble fini d'équations entre termes E = {t=t' , ... , t=t' } est une substitution
116
termes E = {t1=t'1 , ... , tn=t'n} est une substitution qui unifie les deux termes de chaque équation.
• Exemple:Soit E = {x=f(y) , y=z}. Un unifieur de E est s = {x\f(a) , y\a , z\a}. Un autre unifieur de E est s = {x\f(z) , y\z}.
L’unification: l’unifieur le plus général
• Définition (unifieur le plus général).Soient t et t' deux termes, et s un unifieur de t et t'. s est un unifieur le plus général(upg) si pour tout unifieur s' de t et t' il existe une substitution s'' telle que s' = s'' o s.
117
que s' = s'' o s. • Exemple: Soit E = {x=f(y) , y=z}. Un upg de E
est s = {x\f(z) , y\z}. Un autre upg de E est s = {x\f(u) , y \u , z\u}.
• Théorème.Si un ensemble d'équations entre termes est unifiable alors il existe un unique upg s (à un renommage de variables près).
L’unification: équations résolues• Définition (équations résolues).Un ensemble
d'équations E est résolusi
1. toutes les parties gauches des équations sont des variables
2.chaque variable apparaît au plus une fois dans E
118
2.chaque variable apparaît au plus une fois dans E
Soit E = {x1=t1 , ... , xn=tn} un ensemble d'équations résolu. La substitution associéà E est :
sE = {x1\t1 , ... , xn\tn}
Substitutions associées à des ensembles d’équations résolu
• Soit E = {x1=t1 , ... , xn=tn} un ensemble d'équations résolu, et soit sE la substitution associée à E. Comme E est résolu, il n'y a pas de variable x qui apparaît comme substituée et substituant, c-à-d que pour tout x\t dans s :
119
x\t dans sE : – x n'apparaît pas dans t – si t contient un y, alors il n'y a pas d'autre y\t' dans s.
Alors on a en particulier que sE est l'upg de E. De plus, comme chaque xi apparaît exactement une fois
dans E, on a que sE est idempotent : sEo sE = sE
Algorithme d’UnificationEntrée : un ensemble fini E d'équations entre termes ; sortie : ou bien échec, ou bien un upg de E
Débuttant que E n'est pas résolu faire
choisir une équation de E ;
appliquer une des règles suivantes à cette équation : • si elle est de la forme t = t alors la supprimer
• si elle est de la forme f(t1,...,tn) = g(t'1,...,t'm) et f et g sont différentes alors échec
• si elle est de la forme f(t1,...,tn) = f(t'1,...,t'n) alors la remplacer par n équations t1 = t'1,
120
• si elle est de la forme f(t1,...,tn) = f(t'1,...,t'n) alors la remplacer par n équations t1 = t'1, ... ,tn = t'n
• si elle est de la forme t = x et t n'est pas une variable alors la remplacer par x = t
• si elle est de la forme x = t et x apparaît dans t alors échec
• si elle est de la forme x = t et x n'apparaît pas dans t alors remplacer x par t partout ailleursdans E
fin tant que ;
rendre la substitution sE associé à E
Fin
L’unification: exemple et propriétés
• Exemple: Soit {x=y' , f(y)=u}.
1.inversion de f(y)=u : {x=y' , u=f(y)}
2.L'upg associé est donc : { x\y' , u\f(y) }
121
2.L'upg associé est donc : { x\y' , u\f(y) }
• Théorème.Si un ensemble de termes est unifiable alors l'algorithme calcule leur upg, sinon il s'arrête sur échec.
La méthode de résolution
• Définition (résolvante).Soient C et C' deux clauses telles que – C = {p(t1,...,tn)} U D
– C' = {¬ p(t'1,...,t'n)} U D'
122
– C' = {¬ p(t'1,...,t'n)} U D'
– il existe un unifieur le plus général de {t1=t'1 , ... tn=t'n} (après avoir éventuellement renommé les variables d'une des deux clauses)
Alors (D U D')s est une résolvantede C et C'.
Résolvante: exemple• Soient les deux clauses
C = {p(x) , p(x')} et C’ = {¬ p(y) , ¬ p(y')} 1. Comme il n'y a pas de variable commune, un
renommage n'est pas nécessaire. 2. Les littéraux p(x) et ¬ p(y) sont des `candidats' pour
être complémentaires. L'ensemble d'équations E =
123
être complémentaires. L'ensemble d'équations E = {x=y} admet comme upg s = {x\y}.
3. Alors 1. on supprime p(x) de C et ¬ p(y) de C’, 2. on applique s à ce qui reste dans les deux clauses 3. et on `met les deux restes ensemble' : (C - {p(x)})s U (C’ - { ¬ p(y)})s = {p(x') , ¬ p(y')}
La méthode de résolution: facteur
Définition (facteur). Soit C une clause telle que:– ou bien C = {p(t1,...,tn), p(t'1,...,t'n)} U D ,
124
– ou bien C = {p(t1,...,tn), p(t'1,...,t'n)} U D , ou bien C = {¬ p(t1,...,tn), ¬ p(t'1,...,t'n)} U D , et
– il existe un unifieur le plus général s de {t1=t'1 , ... tn=t'n}.
Alors (C)s est un facteurde C.
Facteur: exemples
• Soit la clause C = {¬¬¬¬ p(x,a) , ¬¬¬¬ p(f(y),y) , q(y,z)}. 1. On applique l'algorithme d'unification à {x=f(y),
a=y}, qui rend un unifieur le plus général s = {x\f(a), y\a}.
2.Alors on applique s à C : Un facteur de C est donc :
125
2.Alors on applique s à C : Un facteur de C est donc : (C)s = {¬ p(f(a),a) , q(a,z)}
• N.B. : comme les clauses sont des ensembles (et non des listes), les `doublons' engendrés par l'application de l'upg en 2. sont éliminés.
La méthode de résolution : Réfutation
• Définition (réfutation). Une réfutationdes clauses C1,...,Cm est une liste finie de clauses (D1, ... ,Dn) telle que:
126
n
– Dn est la clause vide {}
– pour i = 1, ...,n, la clause Di est • soit égale à une des clauses Cj
• soit elle est résolvante de deux clauses Dj, Dk précédant Didans la liste
• soit elle est facteur d'une clause Dj précédant Di dans la liste.
Réfutation: exemples• Notation. Dans une réfutation, on utilise une ligne numérotée par
clause. On commence par écrire les clauses de départ. Ensuite on associe un commentaire à chaque ligne spécifiant comment elle a été obtenue. – `` résolvante de 3,1 et 4,1 '' signifie que la clause présente a été obtenue à partir de
la 3ème et 4ème clause, par unification des premiers littéraux de chaque clause.
• Exemple: Soient les clauses {p(x) , p(x')} et {¬ p(y) , ¬ p(y')}. Une réfutation est :
127
réfutation est : • 1 {p(x) , p(x')} clause 1
• 2 {¬ p(y) , ¬ p(y')} clause 2 • 3 {p(x)} facteur de 1,1 et 1,2 avec {x'\x}
• 4 {¬ p(y)} facteur de 2,1 et 2,2 avec {y'\y} • 5 {} résolvante de 3,1 et 4,1 avec {x\y} N.B. : remarquer qu'ici une réfutation est impossible sans utiliser la
factorisation
Remarque: Réfutation en tant que déduction
• Une réfutation des clauses C1,...,Cm n'est donc rien d'autre qu'une déduction de FALSE à partir de C1,...,Cm , dans un système logique ayant aucun axiome et deux règles d'inférence :
128
axiome et deux règles d'inférence : – la production de résolvantes et – la production de facteurs.
• Ce système déductif permet de trouver non pas les formules valides, mais plutôt les formules insatisfiables.
La méthode de résolution : satisfiabilité et validité
• Théorème.Soit A une formule en forme normale clausale, et soient x1,...,xn les variables libres de A. Alors ∀ x1 ... ∀ xn A est insatisfiable ssi il existe une réfutation de l'ensemble de clauses associé à A.
• Corollaire. Pour savoir si une formule donnée A est valide en logique des
129
• Corollaire. Pour savoir si une formule donnée A est valide en logique des prédicats, il suffit de
1. nier A : A' = ¬ A 2. mettre A' en forme normale clausale; 3. répéter la production de résolvantes et facteurs jusqu'à ce que
• ou bien la clause vide est produite • ou bien il n'est plus possible de produire des clauses nouvelles
4.si la clause vide est produite alors A est valide ; si il n'est plus possible de produire des clauses nouvelles alors A n'est pas valide.
La méthode de résolution:semi-décision
• Il est possible qu'aucun des deux conditions d'arrêt soit atteinte. La résolution est donc un exemple de procédure de semi-décision pour la logique des prédicats;
• Exemple:Soient les clauses {p(x)} et {¬ p(y) , p(f(y))}. Alors la procédure de résolution ne s'arrête pas :
• 1 {p(x)} clause 1
130
• 1 {p(x)} clause 1 • 2 {¬ p(y) , p(f(y))} clause 2 • 3 {p(f(y))} résolvante de 1,1 et 2,1 avec {x\y} • 4 {p(f(f(y)))} résolvante de 3,1 et 2,1 avec {y'\f(y)}, après avoir renommé {y\y'} en
clause 2 • 5 {p(f(f(f(y))))} résolvante de 4,1 et 2,1 avec {y'\f(y)}, après avoir renommé {y\y'}
en clause 2 • 6 {p(f(f(f(f(y)))))} résolvante de 5,1 et 2,1 avec {y'\f(y)}, après avoir renommé {y\y'}
en clause 2 • 7 ....
La stratégie linéaire• Lors de la recherche d'une réfutation d'un ensemble de
clauses il faut explorer toutes les possibilités possibles de production de résolvante entre deux clauses, et ceci itérativement.
• Une stratégie linéaire restreint cette combinatoire et diminue ainsi l'espace de recherche.
131
diminue ainsi l'espace de recherche.
• Définition (réfutation linéaire). Une réfutation est linéaire si: – chaque facteur est obtenu à partir de la clause
immédiatement précédente – chaque résolvante est obtenue à partir de deux clauses
dont exactement une la précède immédiatement.
La stratégie linéaire• Théorème.Soit E un ensemble de clauses. Si il
existe une réfutation de E alors il existe une réfutation linéaire de E.
• Exemple:l’exemple ci-dessus de la réfutation des clauses {p(x) , p(x')} et {¬ p(y) , ¬ p(y')} n’est paslinéaire!
132
linéaire!Une réfutation linéaireest : • 1 {p(x) , p(x')} clause 1
• 2 {¬ p(y) , ¬ p(y')} clause 2 • 3 {p(x)} factorisation de 1,1 et 1,2 avec {x'\x} • 4 {¬ p(y')} résolvante de 3,1 et 2,1 avec {x\y} • 5 {} résolvante de 4,1 et 3,1 avec {x\y'}