Logique
Tronc Commun Mines Saint-Étienne
Antoine Zimmermann
Utilisez les flèches pour naviguer dans les diapo
→ ou ↓ pour avancer d’une diapo
← ou ↑ pour revenir en arrière
↖ pour aller à la première diapo
Fin pour aller à la dernière diapo
1
Principe de résolution
- Méthode permettant de vérifier si une formule est satisfiable
- Plus souvent utiliser pour prouver une contradiction (et donc prouver une conséquence logique, par l’équivalence entre « ψ est conséquence logique de φ » et « φ ∧ ¬ψ est une contradiction »
- Généralement plus efficace et plus facile à implémenter que la méthode des tableaux
- Le principe proprement dit ne s’applique que sur des formules normalisées (phase de prétraitement nécessaire)
2
Normalisation : mise sous forme prénexe
- Forme prénexe
- φ ∈ 𝓛1 est sous forme prénexe ssi elle peut s’écrire :
avec ▯i ∈ {∀, ∃}, xi ∈ 𝓥ar et ψ ne contenant pas de quantificateurs.
- Théorème
- Pour tout φ ∈ 𝓛1, il existe φp sous forme prénexe telle que φ ≡ φp.
3
Forme prénexe : exemples
Dans la pratique, la forme prénexe peut être obtenue en déplaçant vers la gauche les quantificateurs en respectant quelques contraintes : si une même variable est concernée par plusieurs quantificateurs, un renommage des variables est nécessaire, si une expression correspond à la partie gauche d’un connecteur →, le(s) quantificateur(s) correspondant(s) change(nt). Aussi, la négation d’un quantificateur devient le quantificateur dual suivi de la négation de ce qui suit.
- ∀x (A (x) ∧ ∃x∀y B(x,y)) ≡ ∀x∃t∀y (A(x) ∧ B(t,y))
- ∀x (∀y P(y) → Q(x)) ≡ ∀x∃y (P(y) → Q(x))
- ∀x (P(x) → ∀y Q(y)) ≡ ∀x∀y (P(x) → Q(y))
- ¬∀x∃y P(x,y) ≡ ∃x∀y ¬P(x,y)
4
Normalisation : skolémisation
- Forme de Skolem
- φ ∈ 𝓛1 est sous forme de Skolem ssi elle est sous forme prénexe et ne contient pas de quantificateur existentiel.
- Théorème
- Il existe une fonction sk : 𝓛1 ⟶ 𝓛1 telle que pour tout φ ∈ 𝓛1, sk(φ) sous forme de Skolem et φ est satisfiable ssi sk(φ) l’est aussi et sk(φ) ⊨ φ.
5
Skolémisation : exemples
Concrètement, la suppression des quantificateurs est assurée par le remplacement de chaque variable x quantifiée existentiellement par une expression fonctionnelle (fonction de Skolem) ayant pour arguments les variables précédant x et quantifiées universellement.
- ∃x∀y P(x,y) a pour forme de Skolem ∀y P(c,y) (c est une nouvelle constante)
- ∀x∃y P(x,y) a pour forme de Skolem ∀x P(x,f(x)) (f est une nouvelle fonction unaire)
- ∀x∀y∃z∃t P(x,y,z,t) a pour forme de Skolem ∀x∀y P(x,y,f1(x,y),f2(x,y)) (f1 et f2 sont des nouvelles fonctions binaires)
6
Normalisation : forme normale conjonctive
Si on sait qu’une formule est sous forme de Skolem, on sait que toutes les variables sont quantifiées universellement, donc on peut retirer tous les quantificateurs.
- Forme normale conjonctive
- Une formule φ ∈ 𝓛1 sans quantificateur est sous forme normale conjonctive ssi il existe des littéraux L1,1, L1,2, …, L1,n1, L2,1, L2,2, …, L2,n2, …, Lp,1, …, Lp,np tels que φ = (L1,1 ∨ L1,2 ∨ … ∨ L1,n1) ∧ (L2,1 ∨ L2,2 ∨ … ∨ L2,n2) ∧ … ∧ (Lp,1 ∨ … ∨ Lp,np)
On convertit une formule sans quantificateur en forme normale conjonctive de la même façon qu’en logique propositionnelle (en utilisant les équivalences de la section 1.2).
7
Forme clausale
On pourra écrire une formule sous forme normale conjonctive sous forme clausale. Ceci permet d’omettre les connecteurs logiques ∧ et ∨ :
(C1) |
L1,1 |
L1,2 |
… |
L1,n1 |
(C2) |
L2,1 |
L2,2 |
… |
L2,n2 |
|
|
⋮ |
|
|
(Cp) |
Lp,1 |
Lp,2 |
… |
Lp,np |
avec Lij = atome ou ¬atome.
8
Résolution : formules unifiables
- Formules unifiables
- Deux formules atomiques sont unifiables s’il existe une substitution des variables par des termes qui rend les deux formules identiques. On note [x ↦ y] la substitution de x par y.
- P(x,f(a)) et P(g(e1,e2),z) sont unifiables car en remplaçant la variable x par g(e1,e2) et la variable z par f(a), les 2 formules deviennent identiques
- R(f(x)) et R(g(x,y)) ne sont pas unifiables
9
Résolution
- Résolution
- Soit la formule φ ∈ 𝓛1. Elle peut être décrite par un ensemble de clauses 𝓒 :
𝓒 =
|
⋮ |
|
(Ci) |
A |
B |
|
⋮ |
|
(Cj) |
¬A' |
C |
|
⋮ |
|
avec
A et
A' unifiables.
La règle qui consiste à déduire la clause résolvante (B ∨ C) à partir des clauses (Ci) et (Cj) s’appelle la règle (ou principe) de résolution.
10
Résolution : méthode complète
- Transformer le problème en la réfutation d’une formule
- Mettre sous forme prénexe
- Mettre sous forme de Skolem
- Mettre sous forme normale conjonctive
- Mettre sous forme clausale
- Appliquer la résolution jusqu’à réfutation, c’est-à-dire :
- Déduction par résolution
- Soit C1, C2, …, Cn un ensemble de clauses à réfuter. On appellera déduction par résolution toute suite 〈C1, C2, …, Cn, f1, f2, …, fp, ◻〉 où fi est obtenue par résolution de deux clauses appartenant à l’ensemble {C1, …, Cn, f1, …, fi–1}.
11
Résolution : exemple dans 𝓛0
Montrer que φ = ((¬p → q) → (¬p → (¬q → p))) est un théorème.
12
Résolution : exemple dans 𝓛1
Montrons que H1 ∧ H2 → C avec :
- (H1)∃x∀y (∀x P(x,y) → R(x,y))
- (H2)∃x∀y P(y,x)
- (C)∃x∃y R(x,y)