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

Post on 10-Sep-2018

218 views 0 download

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

1!

7. Logique des propositions (fin)

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

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

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.

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.

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

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.

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

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

9!

8. Logique des prédicats

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

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.

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!

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.

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

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.

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 :

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

!

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)

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

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

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.

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.

21!

Exemple•  On cherche à simplifier la formule F :

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

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

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

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

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

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 !

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

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

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