TD 9

Transcription

TD 9
Logique
TD n˚9 : Unification & formes normales.
Exercice 1 :
Réduisez complètement les problèmes d’unification suivants en utilisant les règles à la fin du
TD :
?
?
• f (x, g(a, y)) = f (h(y), g(y, a)) ∧ g(x, h(y)) = g(z, z)
?
?
• f (x, x) = f (g(y), z) ∧ h(z) = h(y)
?
?
• f (x, a) = f (b, y) ∧ f (x) = f (y)
Exercice 2 :
Un problème d’unification est en arbre-forme résolue s’il s’écrit ⊥, > ou bien
?
?
x1 = t 1 ∧ . . . ∧ xn = t n
où les variables xi n’apparaissent qu’une seule fois dans le problème. (On ne se préoccupe
?
?
pas de l’orientation des équations : t = x est autorisé au même titre que x = t.)
1. Pourquoi les appelle-t-on « résolues » ?
2. Donnez un sous-ensemble minimal des règles de simplification qui soit suffisant pour
réduire tout problème en un problème en arbre-forme résolue. (En fait, donner un
algorithme consistant à appliquer ces règles, en montrant qu’il traite bien tous les cas.)
Exercice 3 :
Donnez une CNF (conjonction de disjonctions de littéraux) et une DNF (disjonction de
conjonctions de littéraux) des formules propositionnelles suivantes :
• ((A ⇒ B) ⇒ B) ⇒ B
• (A ⇒ (B ∨ ¬A)) ∨ (B ⇒ (A ∨ ¬B))
Exercice 4 :
On construit une formule propositionnelle F (n) ayant 2n constantes propositionnelles P1 , ...,
P2n par récurrence sur n ∈ N :
– F (0) = P1
– F (n + 1) = (F (n) ∧ ¬F (n)[Pi ← P2n +i ]) ∨ (¬F (n) ∧ F (n)[Pi ← P2n +i ])
Fixons n ∈ N et posons k = 2n .
1. Montrez que les modèles de F (n) sont les interprétations I : {P1 , ..., P2n } → {0, 1} telles
que #{i | I(Pi ) = 1} est impair.
2. Montrez que la taille de F (n) est en O(k 2 ).
3. Montrez que la taille de toute DNF équivalente à F (n) est de taille au moins exponentielle en k.
4. Concluez que la mise sous CNF induit au moins une explosion exponentielle de la taille
de la formule.
Exercice 5 :
Soit A une formule propositionnelle sans le symbole ⇒. Pour toute sous-formule B de A, on
fixe PB une constante propositionnelle fraiche (i.e. la fonction B 7→ PB est injective et les
PB n’apparaissent pas dans A). Pout toute sous-formule non atomique B de A, on définit
un ensemble de clauses S(B) de la façon suivante :
– si B = B1 ∧ B2 , S(B) = {¬PB ∨ PB1 , ¬PB ∨ PB2 , ¬PB1 ∨ ¬PB2 ∨ PB } ;
– si B = B1 ∨ B2 , S(B) = {¬PB1 ∨ PB , ¬PB2 ∨ PB , ¬PB ∨ PB1 ∨ PB2 } ;
– si B = ¬B 0 , S(B) = {PB ∨ PS
B 0 , ¬PB 0 ∨ ¬PB }.
S(B).
On pose alors S = {PA } ∪
B s.f. de A
1. Montez que la taille de S est linéaire en la taille de A.
2. Montrez que A est satisfiable ssi S est satisfiable.
Exercice 6 :
Mettez la formule suivante sous forme prenexe :
((∃x. (∀y. D(x, y) ⇒ E(x))) ∧ (∀x. (F (z, x) ⇒ ∃y. G(x, y)))) ⇒ (∃y. H(y, x) ⇒ ¬I(y, z))
Exercice 7 :
Soit F la formule suivante :
∃x. ∀y. ∃z. (R(x) ∧ R(y) ∧ P (x)) ∨ (¬R(y) ∧ ¬R(z)) ∨ (¬P (y) ∧ ¬P (z))
1. Skolemisez ¬F et déduisez que F est prouvable en utilisant la sémantique.
2. Mettez ¬F en forme clausale et déduisez que F est prouvable en utilisant la résolution.
Exercice 8 :
Donner une formule close A de profondeur O(n) telle que
– la skolemisation d’une forme prénexe de ¬A ne fait apparaître que des symboles de Skolem
d’arité 1 ;
– la skolemisation de toute forme prénexe de A fait apparaître au moins un symbole de
Skolem d’arité 2n .
Les règles de l’unification sont les suivantes :
?
?
?
Decompose :
S ∧ f (s1 , ..., sn ) = f (t1 , ..., tn ) −→ S ∧ s1 = t1 ∧ ... ∧ sn = tn
Clash :
Trivial :
Replace :
x∈
/ V ar(t)
?
S ∧ f (s1 , ..., sn ) = g(t1 , ..., tm ) −→ ⊥
S ∧ s = s −→ S
?
?
S ∧ x = t −→ S[x ← t] ∧ x = t
Occur check :
Var replace :
Fusion :
si f 6= g
?
?
S ∧ x = t −→ ⊥
si x ∈ V ar(S), t n’est pas une variable et
si x ∈ V ar(t) et t n’est pas une variable
?
?
S ∧ x = y −→ S[x ← y] ∧ x = y
?
?
?
?
?
?
S ∧ x = s ∧ x = t −→ S ∧ x = s ∧ s = t
si x, y ∈ V ar(S) et x 6= y
si s n’est pas une variable et |s| ≤ |t|
General OC :
S ∧ x1 = t1 ∧ ... ∧ xn = tn −→ ⊥ si pour tout i ∈ {1, ..., n}, xi+1 ∈ V ar(ti )
et ti 6= xi+1 pour au moins un tel i (avec la convention que xn+1 = x1 )

Documents pareils