7. Logique des propositions (fin) - Accueil |...

23
1 7. Logique des propositions (fin) Enrico Formenti ( )

Transcript of 7. Logique des propositions (fin) - Accueil |...

Page 1: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

1!

7. Logique des propositions (fin)

Enrico Formenti(����� ��� ��������� �� ������� � ���)!

Page 2: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

2!

Résolution•  C�est une méthode automatisable permettant de déduire des

propositions à partir d�autres. Autrement dit, c�est de la démonstration automatique.

•  C�est une méthode purement syntaxique qui fut mise au point en 1965 par Robinson.

•  C�est sur cette méthode que repose le principe du langage de programmation logique Prolog, inventé à Marseille en 1972.

•  Restreinte à la logique des propositions (logique d�ordre 0), cette méthode s�appelle la zéro-résolution (ZR).

•  Cette méthode n�est pas complète. Pour toute tautologie, on n�aura pas forcément de preuve dans ZR (il y a moyen de contourner ce manque).

•  Par ailleurs, cette méthode est correcte : ce que l�on prouve dans ZR est forcément toujours vrai.

•  On note une déduction. "ZR

Page 3: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

3!

Vocabulaire•  Un littéral est une variable booléenne ou sa négation.

•  On appellera clause toute formule mise sous forme de disjonction de littéraux.

Théorème Toute formule peut être mise sous Forme Normale Conjonctive i.e sous la forme de conjonctions de clauses.

(admis : la démonstration se ferait par récurrence sur le nombre de connecteurs)

•  Soient A et B deux clauses avec A = l $ l1 $ … $ lp, p≥0 et B = ¬l $ k1 $ … $ kq, q≥0.

Le résolvant de A et B pour l et ¬l est ainsi défini :

R (A, B , l, ¬l) = l1 $ … $ lp $ k1 $ … $ kq

On a le droit d�y enlever toute répétition. •  On peut donc voir apparaître la clause vide, ce que l�on

interprètera comme l�absurde.

Page 4: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

4!

Zéro-Résolution•  Une preuve dans le système formel ZR de S ZR c où S est un

ensemble de clauses {c1, … , cn}n≥0 et c une clause est une suite de clauses D1, …, Dr, r≥1, telles que :-  Dr = c-  pour tout i, 1≤i≤r, une des propriétés suivantes est

vraie :1.  Di � S2.  Di = R ( Dj, Dk, l, ¬l) avec j<i, k<i3.  Di = Dj avec j<i, à une répétition près.

•  On note une telle preuve {c1, … cn}n≥0 "ZR c

•  On obtient une preuve que c est une conséquence de S.

Page 5: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

5!

Exemple 1•  On part de S = {¬p $ ¬q $ r, ¬p $ q, p, ¬r}. On veut montrer que S "ZR !.

•  On pourrait procéder avec la table de vérité. On trouverait dans chaque cas 0 comme valeur de vérité.

•  Preuve dans le système formel ZR :!  D1 = ¬p $ ¬q $ r !  D2 = ¬p $ q!  D3 = R ( D1, D2, q, ¬q) = ¬p $ r $ ¬p!  D4 = p!  D5 = R ( D3, D4, p, ¬p) = r!  D6 = ¬r!  D7 = R ( D5, D6, r, ¬r) = ⊥!

•  On a ainsi montré que ( ((p � ¬q) $ r) # (p � q) # p ) ≈ r.!

Page 6: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

6!

Exemple 2•  On veut montrer dans ZR la transitivité de l�implication. A-t-on : {p � q, q � r} "�� (p � r) ?!

•  On part de S = {p � q, q � r, ¬(p � r) }. On montre que S "�� ⊥.

•  On met les éléments de S sous forme de clause :S = { ¬p $ q, ¬q $ r, p, ¬r }

•  Preuve dans ZR :!  D1 = ¬p $ q !  D2 = ¬q $ r !  D3 = R ( D1, D2, q, ¬q) = ¬p $ r!  D4 = ¬r !  D5 = R ( D3, D4, r, ¬r) = ¬p!  D6 = p!  D7 = R ( D5, D6, ¬p, p) = ⊥!

•  On en déduit que {p � q, q � r} "�� p � r cette dernière implication est bien une conséquence des deux premières.

Page 7: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

7!

Commentaires•  Le problème de cette méthode est de ne pas être complet. Cela se

traduit par le fait que chaque tautologie n�a pas de démonstration directe par ZR.

Exemple : p ⇒ p !

!Il faut partir de ¬(� ⇒ �)!!En fait, ¬(� ⇒ � ) ≈ � # ¬�!Ensuite, on peut prouver que {p, ¬p} "ZR!

•  C�est pour cela que l�on dit que la ZR est un détecteur absolu de

contradictions.

•  On avance ici « à l�aveuglette » : c�est ce que l�on appelle le chaînage avant. C�est le chaînage arrière qui est utilisé en programmation logique.!

Page 8: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

8!

Limite de la logique des propositions•  Le calcul des propositions est simple mais ne peut pas

rendre compte de la totalité des raisonnements.

•  Par exemple, il ne permet pas faire allusion aux propriétés d�une variable. Il ne permet pas non plus de décrire des relations entre plusieurs variables.

•  Il leur reconnaît simplement deux états : elles sont vraies ou elles sont fausses.

•  On va donc étudier comment généraliser le calcul des propositions afin de mieux formaliser le raisonnement.

•  On définit le calcul des prédicats (logique du 1er ordre).

Page 9: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

9!

8. Logique des prédicats

Enrico Formenti(����� ��� ��������� �� ������� � ���)!

Page 10: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

10!

Informatique et logique du 1er ordreParmi les innombrables usages de la logique du 1er ordre en informatique, citons-en deux importants :

•  Les langages de programmation peuvent être typés ou fortement typés. On a besoin de la logique du 1er ordre pour décrire le principe même du typage.

•  Les bases de données et particulièrement des langages comme SQL se fondent sur le calcul des prédicats.

Page 11: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

11!

Calcul des prédicatsEn bref,•  Un prédicat p est une fonction d�un nombre fini de variables ou de

constantes dans .

•  Les constantes et les variables sont issues d�un même ensemble appelé le domaine.

Exemplesi p signifie « être pair ». Sur le domaine des entiers, p(2) est vrai mais p(3) est faux.

•  Une interprétation sera la définition d�un domaine et de prédicats

sur ce domaine.

•  Apparaissent les quantificateurs, l�un existentiel, noté � et l�autre universel, noté �.

� x p(x)� x p(x)

B!I!

Page 12: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

12!

Calcul des prédicats : syntaxe•  On dispose :

•  d�un ensemble dénombrable de variables V = {x,y,w,v,v1,… } !sur un domaine D

•  d�un ensemble dénombrable de constantes C = {c1,c2, … } ⊆ D •  des symboles de fonctions {f1,f2, … }!•  des symboles de prédicat {p1,p2, … } !

!

Exemple : Une variable peut représenter n�importe quel étudiant, une constante représente précisément l�un d�eux, un prédicat pourrait être le fait d�être admis à un diplôme.

!•  Les variables, les constantes c1, c2, … sont appelées les termes. Si �1, �2, …, �� sont des termes alors (�1, �2, …, ��) �� �� ��� ( �� �� ����� ! � �������)!•  Si p est un prédicat et t1, t2, … tJ des termes, alors p(t1, t2, … tJ )

est appelé un atome.

Page 13: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

13!

Calcul des prédicats : syntaxe•  Définition inductive de l�ensemble des formules F du calcul des

prédicats :

(B) Les atomes sont des formules de F (I) si F � F, alors

¬F ∈ F si F, F��∈ F, alors

F # F��∈ F F $ F��∈ F F ⇒ F��∈ F F ⟺F��∈ F

si F est une formule et x une variable, alors

∃x F ∈ F

si F est une formule et x une variable, alors�x F ∈ F

Page 14: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

14!

Variables libres ou liées•  Chacune des fois où une variable x apparaît dans une formule F est

appelée une occurrence de x dans F.

•  On dit qu�une occurrence de x dans F est liée si un quantificateur

porte sur cette occurrence de x. Dans le cas contraire, on parle d�occurrence libre.

•  On peut construire les arbres d�expression de ces formules pours�y retrouver entre occurrence liée et libre.

•  Une variable est libre si toutes ses occurrences sont libres, une

variable est liée si elle a au moins une occurrence liée.On parle aussi de variable muette dans ce dernier cas.

Page 15: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

15!

Exemples1. ∃� ∀� �( �,�) ∀�∃� �(�,�,�)! Toutes les occurrences de x et y dans p ou q sont liées mais celles de x ne sont pas toutes liées au même quantificateur.

2. ∃� � (�,�) ∀�∀� �(�,�,�)!

Toutes les occurrences de x dans p ou q sont liées, celles de y dans p est libre.

3. ∃� � (�) # ∀� � (�)!

L�occurrence de x dans u est liée au ∃, celle de x dans w est liée seulement au ∀.On a l�équivalence :

∀� (� (�) # � (�)) ≈ ∀� � (�) # ∀� � (�) !∃� (� (�) $ � (�)) ≈ ∃� � (�) $ ∃� � (�) !

!

Page 16: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

16!

Calcul des prédicats : sémantique•  Une interprétation I est la donnée :

•  d�un domaine non vide D éventuellement infini•  d�une valuation dans D de chaque variable (susceptibles

d�occurrences libres)•  d�un ensemble P de prédicats. Un prédicat d�arité i sera défini sur Di.

•  d�applications : à chaque prédicat p de P d�arité i, correspond une application de Di dans !.

•  La valeur (de vérité) de la formule F sous l�interprétation I est notée

v (I,F)!!

•  Pour l�instant, seuls les atomes A ont une valeur fixée par I v (I,A)

Page 17: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

17!

Calcul des prédicats : sémantique (suite)La valeur de vérité de F est donnée par v (I,F) ainsi définie :•  on étend à toutes les formules la valuation v(I,A) définie pour l�instant que

pour les atomes A :•  si F = A, v (I,F) = v (I,A) ∈!•  si F = ¬F�, v (I,F) = v (I,F�) •  si F = F��# F", v (I,F) = v (I,F�) . v (I,F") •  si F = F��$ F", v (I,F) = v (I,F�) + v (I,F") !•  si F = F��⇒ F",v (I,F) = v (I,F�) + v (I,F") !•  si F = F��⟺ F",v (I,F) = ( v (I,F�) + v (I,F") ). (v (I,F") + v (I,F�) )!

•  appelons Gx/d la formule G où toutes les occurrences libres de x ont été remplacées par d fixé dans D :!•  si F = ∀ x G, v (I,F) = 1, si pour tout d de D, v(I, Gx/d)=1

v (I,F) = 0, sinon !•  si F = ∃ x G, v (I,F) = 1, s�il existe un d de D tel que

v (I, Gx/d) = 1 v (I,F) = 0 sinon. !

Page 18: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

18!

Vocabulaire (rappel)•  Une formule F est une tautologie si, pour toute interprétation I :

v (I,F) = 1!!

•  Une formule F est satisfiable si il existe une interprétation I telle que :

v (I,F) = 1

☛ On dit que I satisfait F et on le note : I F.☛ Une telle interprétation I est appelée un modèle pour F.

!•  Une formule F est insatisfiable si, pour toute interprétation I on

a:v (I,F) = 0

☛ On dit que F est une antilogie.

•  Soient F et F� deux formules, F et F� sont équivalentes et on note

F ≈ F�ssi, pour toute interprétation I, on a : v (I,F) = v (I,F�)!

Page 19: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

19!

Exemple∀x ∀y p(x,y) ⇒ ∃z p(x,z) # p(z,y )!

Appelons F la formule entière et G l�implication, on a F : ∀x ∀y G !!•  Première interprétation I1 pour F

•  le domaine D1 de I1 est l�ensemble des réels•  le prédicat binaire p est l�ordre <

"  si p(x,y) est faux, G est vraie."  si p(x,y) est vrai, alors x<y. Posons z = (x+y)/2. Alors, p(x,z)est vrai et p(z,y) aussi.

"  en conclusion, v (I1,F)=1 et I1 constitue un modèle pour F.

•  Deuxième interprétation I2 pour F •  le domaine D2 de I2 est l�ensemble des entiers naturels•  le prédicat binaire p est encore l�ordre <

"  si p(x,y) est faux, G est vraie."  si p(x,y) est vrai, alors x<y. Il n�existe pas d�entiers entre x et

y dès lors que x et y sont consécutifs. G peut être fausse."  en conclusion, v (I2,F)=0. F ne saurait être valide.

Page 20: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

20!

Négation et quantifications•  Que deviennent les négations des formules quantifiées ?

!¬�x F ≈ ∃ x ¬F

¬�x � ≈ �x ¬�

Démonstration de la première équivalence :•  Il faut démontrer que ¬�x F ⟺ ∃ x ¬F est valide.•  Commençons par montrer que ¬�x F ⇒ ∃ x ¬F

•  Supposons que F est une tautologie, �x F est aussi une tautologie. Alors, ¬�x F est une antilogie. Et l�implication ¬�x F ⇒ ∃ x ¬F est bien une tautologie.

•  Supposons que F n�est pas une tautologie. Il existe une interprétation I pour laquelle F est fausse. Alors, ∃ x ¬F est une tautologie. Et l�implication ¬�x F ⇒ ∃ x ¬F est une tautologie.

•  Reste à donner une démonstration analogue pour la réciproque.

Page 21: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

21!

Exemple•  On cherche à simplifier la formule F :

¬(∀� ∃� ∀� ∃� �(�,�,�,�))!!!

•  On applique les règles de négation d�une expression quantifiée :!

� !≈ ∃� ¬(∃� ∀� ∃� �(�,�,�,�))!! ≈ ∃� ∀� ¬(∀� ∃� �(�,�,�,�))!

! ≈ ∃� ∀� ∃� ¬(∃� �(�,�,�,�))!

! ≈ ∃� ∀� ∃� ∀� ¬�(�,�,�,�)!

Page 22: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

22!

Autres identités remarquables•  On a les équivalences (si x n'est pas libre dans F) :

∀� � ≈ ∃� � ≈ �!∀� (� ⇒ � ) ≈ � ⇒ ∀ � � !∃� (� ⇒ �) ≈ � ⇒ ∃� �!

•  N'inventez pas celles qui n'existent pas !

∃� (� # � ) ∃�� # ∃ � � !!

∀� (� $ � ) ∃�� $ ∃ � � !

Page 23: 7. Logique des propositions (fin) - Accueil | MC3mc3.i3s.unice.fr/~formenti/OFI/resources/Cours/08it-ef.pdf · programmation logique Prolog, inventé à Marseille en 1972. • Restreinte

23!

Contre-exemple•  Prenons l�alphabet (français) pour domaine et les deux prédicats :

–  v(x) = 1 si x est une voyelle–  c(x) = 1 si x est une consonne

•  Il n�est pas équivalent de dire :

« toute lettre de l�alphabet est une consonne ou une voyelle »puis

« toutes les lettres de l�alphabet sont des consonnes ou toutes les lettres de l�alphabet sont des voyelles »

•  Il n�est pas non plus équivalent de dire :

« il existe dans l�alphabet au moins une consonne et une voyelle »puis

« il existe dans l�alphabet une lettre à la fois consonne et voyelle ».