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 )