Vous êtes sur la page 1sur 7

Plan

Programmation Logique
Sup Galilée-INFO2
1 Ch. 1: Logique propositionnelle
Théorie de la preuve
Céline Rouveirol Résolution en logique propositionnelle

2020-2021

1/27 2/27

Théorie de la preuve/démonstration Théorie de la preuve/démonstration

Approche purement syntaxique : on manipule des formules


(on prodit fde nouvelles formules à partir de formules) sans
s’intéresser explicitement à leur valeurs de vérités (i.e. à leurs Si n = 0, F est un axiome (F est admise sans conditions, c’est
modèles) un principe fondamental)
On utilise une ou plusieurs règles d’inférence : Une formule F est un théorème (noté ` F ) si F est un axiome
P1 ... Pn ou F est obtenue à partir de l’application d’une (ou plusieurs)
C règles d’inférence à d’autres théorèmes.
P1 , . . . , Pn : prémisses de la règle
C : conclusion de la règle
tout repose sur les propriétés de ces règles d’inférence

3/27 4/27
Théorie de la démonstration Axiomatisation de Hilbert du calcul propositionnel

(Schémas) Axiomes :
Une preuve du théorème A est une suite finie (A1 , . . . An ) où A1 :` A → (B → A)
chaque Ai est soit un axiome soit est obtenu par l’application A2 :` (A → (B → C )) → ((A → B) → (A → C ))
d’une règle d’inférence sur des théorèmes Aj et Ak ` (¬B → ¬A) → (A → B))
précédemment produits ` (A ∧ B) → A
` (A ∧ B) → B
Une déduction de A à partir des hypothèses B1 , . . . Bn (noté
` A → (B → (A ∧ B))
B1 , . . . Bn ` A) est une suite finie de (A1 , . . . An ) où chaque Ai ` A → (A ∨ B)
est soit un axiome, soit un des Bk , soit est obtenu par ` B → (A ∨ B)
l’application d’une règle d’inférence sur des théorèmes Ak et ` (A → B) → ((C → B) → ((A ∨ C ) → B))
Al précédemment produits ` (A → B) → ((A → ¬B) → ¬A)
` (¬¬A) → A)

5/27 6/27

Axiomatisation de Hilbert du calcul propositionnel Exemple de preuve


On cherche à prouver F → H à partir de H1 : F → G et
H2 : G → H, en termes plus formels F → F , G → H ` F → H.
Règles d’inférence : modus ponens
(transitivité de →). Voici la preuve, où juste les deux axiomes A1
A→B
A et A2 du transparent précédent sont utilisés :
B
ou alternativement A, A → B ` B A1 : A → (B → A)

Substitution: Si une formule A est valide (resp. insatisfiable), A2 : (A → (B → C )) → ((A → B) → (A → C )) (G → H) → (F → (G → H) H2 : G → H


(F → (G → H)) → ((F → G ) → (F → H)) F → (G → H)
alors substituer dans A un symbole B par une formule F
(F → G ) → (G → H)∗
quelconque permet d’obtenir une autre formule valide (resp.
insatisfiable) H1 : F → G (F → G ) → (G → H)∗
(G → H)


: preuve coupée en deux pour problème de lisibilité

7/27 8/27
Propriétés d’un système de preuve Propriétés du calcul des propositions

Correct Un système de preuve est dit correct si tout théorème


est une formule valide (` est adéquate si pour toute
formule A telle que ` A est valide |= A).
Cohérence Un système d’inférence est cohérent s’il n’existe
Le calcul des propositions est correct, cohérent, fortement complet
aucune formule A telle que ` A et ` ¬A.
et décidable
Complétude forte Un système de preuve est dit fortement complet
si pour toute formule A et tout ensemble de formule
F telle que F |= A, F ` A.
Décidabilité Un système de preuve est décidable si il existe un
algorithme qui permet en temps fini de décider si
` F.

9/27 10/27

Formes normales Algorithme de mise sous FNC


Littéral : formule atomique ou négation d’une formule
Utilisation des équivalences vues au transparent 20.
atomique
1 Eliminer les → et les ↔: application des équivalences 1 et 2
Clause : formule de la forme l1 ∨ . . . ∨ ln où chaque li est un
littéral
2 Limiter la portée des négations (faire “descendre” les
négations pour qu’elles ne portent que sur des symboles
FNC : formule de la forme D1 ∧ . . . ∧ Dk où k > 0 et
propositionnels): application des équivalences 3 et 4
chaque Di est une clause
3 Mettre sous forme clausale: application des équivalences 5
Conjonction élémentaire : formule de la forme l1 ∧ . . . ∧ ln où
chaque li est un littéral Notes:
FND : formule de la forme C1 ∨ . . . ∨ Ck où k > 0 et Pour une formule f donnée, il existe plusieurs f 0 telles que
chaque Ci est une conjonction élémentaires f ≡ f 0 et f 0 en FNC.
Toute formule admet une forme normale conjonctive La taille de f 0 peut croı̂tre (exponentiellement)
et disjonctive qui lui est logiquement équivalente

11/27 12/27
Exemple de mise sous FNC SAT
La formule F est-elle satisfiable (exhiber un modèle)?
Méthode des tables de vérité: si F contient n variables
(p → (q ↔ ¬r )) ∧ (r ↔ ¬s) ≡ propositionnelles, réclame la construction d’une table de 2n
¬p ∨ ((q → ¬r ) ∧ (¬r → q)) ∧ (r ↔ ¬s) ≡ éléments.
Une k-cnf est une formule FNC telle que chacune de ses
¬p ∨ ((q → ¬r ) ∧ (¬r → q)) ∧ (r → ¬s) ∧ (¬s → r ) ≡
clauses contient k littéraux. k-SAT: décider si une k-cnf est
¬p ∨ ((¬q ∨ ¬r ) ∧ (r ∨ q)) ∧ (r → ¬s) ∧ (¬s → r ) ≡ satisfiable.
¬p ∨ ((¬q ∧ r ) ∨ (¬r ∧ q)) ∧ (r → ¬s) ∧ (¬s → r ) ≡ Il existe des algorithmes polynomiaux pour résoudre 2-SAT,
mais 3-SAT est NP-complet. Soit n, m et l le nombre de
(¬p ∨ ¬q ∨ ¬r ) ∧ (¬p ∨ r ∨ q) ∧ (¬r ∨ ¬s) ∧ (s ∨ r ) clauses, variables et littéraux d’une formule E k-cnf avec
k ≥ 3, prouver que E est insatisfiable requiert un temps
exponentiel (O(2n ∗ l))

13/27 14/27

Résolution de SAT Procédure DPLL

Soit la formule F : (¬X ∨ Z ) ∧ (¬Y ∨ Z ) ∧ . . .


Un champ de recherche très actif (de nombreux problèmes Idée de base: il n’est pas nécéssaire de connaı̂tre la valeur de
peuvent se formaliser comme un problème SAT). vérité de chaque var. propositionnelle pour décider si F est
satisfiable ou non
Résolution par méthodes systématiques: procédure de Davis,
Putnam, Logemann et Loveland (DPLL dans la suite), et Supposons [X ]I = t
dérivées On peut à la suite de cette assignation faire les simplifications
suivantes:
Résolution par méthodes locales: GSAT, Walksat, recherche
- enlever les clauses qui sont satisfaites (celles qui contiennent
tabou, ... X)
- simplifier ¬X quand il apparaı̂t dans une clause. F se simplifie
en: Z ∧ (¬Y ∨ Z ) ∧ . . .

15/27 16/27
Procédure DPLL (suite) Procédure DPLL
1: Procédure DPLL(C ) . C formule en FNC
Après simplification, on peut en déduire que [Z ]I = t pour 2: Si C est vide Alors Retourner SAT
3: Fin Si . (SAT)
que la clause soit satisfiable... et ainsi de suite
4: Si  ∈ C Alors Retourner UNSAT
Attention, à tout instant, si on découvre que I n’est pas un 5: Fin Si . (Contr)
modèle de F , on peut être amené à remettre en cause 6: Si clause unitaire ` ∈ C Alors DPLL(C[`/t])
l’assignation de X dans I 7: Fin Si . (Unit)
8: Si ` est un littéral pur de C Alors DPLL(C[`/t])
Un littéral pur est une variable propositionnelle qui apparaı̂t
9: Fin Si . (Pur)
dans toute la formule à résoudre avec la même polarité 10: Si DPLL(C[`/t]) = SAT Alors Retourner SAT . (Split)
Si l est un littéral pur, alors on peut assigner l à t et simplifier 11: Sinon
toutes les clauses dans lesquelles l apparaı̂t. 12: DPLL(C[`/f])
13: Fin Si
14: Fin Procédure

17/27 18/27

Procédure DPLL Procédure DPLL

S = {s ∨ t; p ∨ q ∨ r ; ¬p ∨ q ∨ t; r ∨ ¬q; ¬r ∨ ¬q ∨ t; ¬t}
La règle PUR n’est pas nécessaire à la complétude de la
procédure [¬t]I = f . Simplifications:
S = {s; p ∨ q ∨ r ; ¬p ∨ q; r ∨ ¬q; ¬r ∨ ¬q}
Points de choix dans DPLL: quel littéral assigner ? Un bon
choix peut améliorer significativement les performances de la [s]I = t. Simplifications:
résolution. S = {p ∨ q ∨ r ; ¬p ∨ q; r ∨ ¬q; ¬r ∨ ¬q}
Heuristiques classiques: On assigne q (le plus fréquent dans les clauses de plus petite
MOM: la variable la plus fréquente dans des clauses de petite taille). Point de retour arrière: [q]I = t. Simplifications:
taille S = {r ¬r }. Insatisfiable ⇒ retour arrière.
Le littéral qui va permettre le plus de propagations unitaires [q]I = f . S = {p ∨ r ; ¬p}. On obtient donc un modèle pour
(déclenchements de Unit) [p]I = f et [r ]I = t

19/27 20/27
Résolution en calcul propositionnel Résolution en calcul propositionnel

Deux règles d’inférence:


Méthode de démonstration par réfutation.
Résolution. Soient C1 et C2 deux clauses, soit p un littéral.
Ensemble de formules insatisfiable: un ensemble de formules
C1 ∨ p C2 ∨ ¬p
{Fi }, 1 ≤ i ≤ n est insatifiable ssi il n’existe aucun modèle M
R = C1 ∨ C2
tel que pour tout i, M |= Fi .
On appelle R la résolvante de C1 ∨ p et C2 ∨ ¬p
Principe de déduction: une formule G est conséquence logique
d’un ensemble de formules F = {Fi , 1 ≤ i ≤ n} ssi F ∪ ¬G est Factorisation. Soient C une clause et p une littéral
insatisfiable. C ∨p∨p
C ∨p

21/27 22/27

Dérivation par résolution propositionnelle Exemple de réfutation

Soient E un ensemble de clauses et c une clause. Une dérivation


par résolution de c à partir des hypothèses E est une suite de S = {p ∨ q ∨ r ; ¬p ∨ q ∨ r ; ¬q ∨ r ; ¬r }
clause r1 , . . . , rn telles que pour tout i, 1 ≤ i ≤ n :
ri ∈ E p∨q∨r ¬p ∨ q ∨ r
r
il existe un j ≤ i tel que j par factorisation q∨q∨r ∨r
ri
r rk ¬q ∨ r ¬r q∨r ∨r
il existe j, k ≤ i tels que j par résolution (ri est ¬q q∨r
ri
appelé résolvante de rj et rk r ¬r

Une réfutation de E est une dérivation par résolution de  à
partir des hypothèses de E

23/27 24/27
Propriétés de la résolution propositionnelle Résolution et clause de Horn

Adéquation Soient A, B et C des clauses. Clauses de Horn une clause comprenant au plus un littéral positif.
{A ∨ C , B ∨ ¬C } |= A ∨ B Résolution unitaire au moins un des deux parents est unitaire (`):
Non complétude Il existe une théorie clausale F et une clause C ` L ∨ ¬`
L
telle que F |= C , mais il n’existe pas de dérivation
Stratégie de résolution 1 Si  est dans F alors F est
par résolution de C à partir de F .
insatisfiable
Complétude pour la réfutation Un ensemble de formules F est 2 Sinon, choisir une clause C et p une clause

insatisfiable ssi on peut dériver la clause vide  de F unitaire positive et C contient ¬p


par résolution. Si F |= C , il existe une réfutation à 3 Calculer la résolvante R de p et C

partir de F ∪ ¬C . 4 Remplacer dans F C par R

25/27 26/27

Résolution et clause de Horn

La résolution unitaire n’est pas complète par réfutation pour


les théories clausales quelconques. Exemple:
{a ∨ b; ¬a ∨ b; a ∨ ¬b; ¬a ∨ ¬b}
La résolution unitaire est complète par réfutation pour les
ensembles de clauses de Horn. Exemple:
{a; ¬c; ¬a ∨ b; ¬b ∨ c}

27/27

Vous aimerez peut-être aussi