33
Logique des programmes L3 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 ème siè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ècle pour 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 Deuxième partie du 20 ème siè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 oeuvre 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.

Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

  • Upload
    vanngoc

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 2: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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

Page 3: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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

Page 4: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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 {-> , ¬}.

Page 5: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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

Page 6: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 7: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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).

Page 8: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 9: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 10: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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

Page 11: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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

Page 12: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 13: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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)

Page 14: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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 {}.

Page 15: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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).

Page 16: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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

Page 17: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 18: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 19: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 20: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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).

Page 21: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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'.

Page 22: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 23: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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)

Page 24: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 25: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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

Page 26: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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) )

Page 27: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 28: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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

Page 29: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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}.

Page 30: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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

Page 31: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 32: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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.

Page 33: Historique (1) Logique des programmes L3 - …hameur/Cours/Log/CLog.pdfLa logique (1) • Le but est de caractériser le raisonnement valide: – SI il neige ALORS il fait froid. OR

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'}