1 Logique des propositions (6 points)
Transcription
1 Logique des propositions (6 points)
Examen de Logique Formelle Année 2012-2013 Mardi 23 octobre 2012 Promotion Guichet 2ième année É. Salvat Modalités : Durée 2h00 Aucun document autorisé Aucune sortie n'est autorisée durant la durée de l'examen Le barème est donné à titre indicatif Logique des propositions (6 points) Co rri gé 1 (2 points ). Dites si les formules suivantes sont valides, contingentes ou insatisfaisables. Justiez votre réponse. 1. (¬(p ∧ q) → r) → (¬(p ∧ q) ∨ r) 2. (p ∧ ((q → ¬p) ∧ (q ∨ r) ∧ ¬r)) → q Exercice 1 Corrigé de l'exercice 1. p V V V V F F F F q V V F F V V F F 1. r ¬(p ∧ q) → r) (¬(p ∧ q) ∨ r) (¬(p ∧ q) → r) → (¬(p ∧ q) ∨ r) V V V V F V F F V V V V F F V V V V V V F F V V V V V V F F V V La formule est contingente. 2. p V V V V F F F F q V V F F V V F F r (q → ¬p) (q ∨ r) (p ∧ ((q → ¬p) ∧ (q ∨ r) ∧ ¬r)) → q V F V V F F V V V V V V F V F V V V V V F V V V V V V V F V F V La formule est valide. (Arbre sémantique - 4 points ). A l'aide des arbres sémantiques, construisez, si il en existe un, un arbre échec des formules suivantes, ou bien donnez un modèle de la formule. Exercice 2 1 1. p ∧ ¬s ∧ q ∧ (p → (r ∨ s)) ∧ ¬r 2. ((p → (q ∧ r)) ∨ q) → (q ∨ r) Corrigé de l'exercice 2. Il faut au préalable, passer les formules sous forme clausale. Co rri gé 1. E1 = p ∧ ¬s ∧ q ∧ (p → (r ∨ s)) ∧ ¬r E1 = p ∧ ¬s ∧ q ∧ (¬p ∨ r ∨ s) ∧ ¬r F C1 = {C1 = {p}; C2 = {¬s}; C3 = {q}; C4 = {¬p; r; s}; C5 = {¬r}} On construit l'arbre échec suivant : ¬p p C1 s ¬s C2 ¬q q C3 r ¬r C5 C4 2. E2 = ((p → (q ∧ r)) ∨ q) → (q ∨ r) E2 = ¬((¬p ∨ (q ∧ r)) ∨ q) ∨ (q ∨ r) E2 = ((p ∧ (¬q ∨ ¬r)) ∧ ¬q) ∨ (q ∨ r) E2 = (p ∨ q ∨ r) ∧ (¬q ∨ ¬r ∨ q ∨ r) ∧ (¬q ∨ q ∨ r) E2 = (p ∨ q ∨ r) ∧ ∧ E2 = (p ∨ q ∨ r) F C2 = {C1 = {p; q; r}} q r ¬r r p ¬p ¬q q ¬r r ¬q ¬r ¬r r C1 L'interprétation I telle que I(p) = I(q) = I(r) = V est un modèle de la formule E2 . 2 Logique des prédicats (14 points) (Unications - 4 points ). Calculez, si il existe, un unicateur le plus général des paires d'atomes (A1 , A2 ) à l'aide de l'algorithme de Robinson. En cas d'échec, indiquez pourquoi les atomes ne sont pas uniables. u, v, w, x, y, z sont des variables, f, g sont des symboles fonctionnels, a, b sont des constantes. Exercice 3 Co rri gé 1. A1 = p(f (g(x, y)), g(v, w), y), A2 = p(f (z), x, f (x)) 2. A1 = p(x, f (u, x)), A2 = p(f (y, a), f (z, f (b, z))) ; Corrigé de l'exercice 3. En Appliquant l'algorithme de Robinson, on obtient les ensembles de désaccord et les substitutions suivantes. 1. A1 = p(f (g(x, y)), g(v, w), y), A2 = p(f (z), x, f (x)) a) ensemble de désaccord : D1 = {g(x, y); z} substitution : σ1 = {(z, g(x, y))} A01 = σ1 (A1 ) = p(f (g(x, y)), g(v, w), y) A02 = σ1 (A2 ) = p(f (g(x, y)), x, f (x)) b) ensemble de désaccord : D2 = {x; g(v, w)} substitution : σ2 = {(x, g(v, w))} A001 = σ2 (A01 ) = p(f (g(g(v, w), y)), g(v, w), y) A002 = σ2 (A02 ) = p(f (g(g(v, w), y)), g(v, w), f (g(v, w))) c) ensemble de désaccord : D3 = {y; f (g(v, w))} substitution : σ3 = {(y, f (g(v, w))))} 00 A000 1 = σ3 (A1 ) = p(f (g(g(v, w), f (g(v, w)))), g(v, w), f (g(v, w))) 000 A2 = σ3 (A002 ) = p(f (g(g(v, w), f (g(v, w)))), g(v, w), f (g(v, w))) d) ensemble de désaccord : D4 = ∅ A1 et A2 sont uniables. Un unicateur le plus général de A1 et A2 est σ = σ3 ◦σ2 ◦σ1 soit σ = {(z, g(g(v, w), f (g(v, w)))); (x, g(v, w)); (y, f (g(v, w)))} 2. A1 = p(x, f (u, x)), A2 = p(f (y, a), f (z, f (b, z))) a) ensemble de désaccord : D1 = {x; f (y, a)} substitution : σ1 = {(x, f (y, a))} A01 = σ1 (A1 ) = p(f (y, a), f (u, f (y, a))) A02 = σ1 (A2 ) = p(f (y, a), f (z, f (b, z))) b) ensemble de désaccord : D2 = {u; z} substitution : σ2 = {(u, z)} A001 = σ2 (A01 ) = p(f (y, a), f (z, f (y, a))) A002 = σ2 (A02 ) = p(f (y, a), f (z, f (b, z))) 3 c) ensemble de désaccord : D3 = {y; b} substitution : σ3 = {(y, b)} 00 A000 1 = σ3 (A1 ) = p(f (b, a), f (z, f (b, a))) 00 A000 2 = σ3 (A2 ) = p(f (b, a), f (z, f (b, z))) Co rri gé d) ensemble de désaccord : D4 = {a; z} substitution : σ4 = {(z, a)} 000 A0000 1 = σ4 (A1 ) = p(f (b, a), f (a, f (b, a))) 0000 A2 = σ4 (A000 2 ) = p(f (b, a), f (a, f (b, a))) e) ensemble de désaccord : D5 = ∅ A1 et A2 sont uniables. Un unicateur le plus général de A1 et A2 est σ = σ4 ◦ σ3 ◦ σ2 ◦ σ1 soit σ = {(x, f (b, a)); (u, a); (y, b); (z, a)} (Modélisation - 4 points ). Modélisez les phrases suivantes en logique des prédicats. Vous préciserez le vocabulaire utilisé. Exercice 4 1. Tous les étudiants aiment la logique. 2. Chaque étudiant n'aime pas une matière. 3. Tous les étudiants n'aiment pas une matière. 4. Les étudiants qui ont une bonne note en logique sont les meilleurs. Corrigé de l'exercice 4. On utilise le vocabulaire suivant : Constantes : log (la logique) Variables : x, y fonctions : pas de fonction Prédicats unaires : Etud : Etud(x) signie x est un étudiant M at : M at(y) signie y est une matière Prédicats binaires : Aime : Aime(x, y) signie x aime y BN : BN (x, y) signie x a une bonne note en y M eilleur : M eilleur(x, y) signie x est meilleur que y 1. ∀xEtud(x) → Aime(x, log) 2. ∀x∃y(Etud(x) ∧ M at(y)) → ¬Aime(x, y) 3. ∃x∀y(M at(x) ∧ Etud(y)) → ¬Aime(y, x) 4. ∀x∀y(Etud(x) ∧ BN (x, log) ∧ Etud(y)) → M eilleur(x, y) (Méthode de résolution - 6 points ). Soit l'énoncé suivant : Exercice 5 4 1. Tous ceux qui conduisent une Harley sont rustres. 2. Tous les motards conduisent une Harley ou une BMW. 3. Quiconque conduit une BMW est branché. 4. Toute personne branchée est avocat. 5. Une jeune lle bien ne sort pas avec quelqu'un de rustre. Co rri gé 6. Marie est une jeune lle bien, et Jean est un motard. 7. Si Jean n'est pas avocat, alors Marie ne sort pas avec Jean. a) Modélisez en logique du premier ordre l'énoncé ci-dessus en utilisant les prédicats : har(x) : x est une Harley cond(x,y) : x conduit y. bmw(x) : x est une bmw. mot(x) : x est un motard. rus(x) : x est rustre. bra(x) : x est branché. avo(x) : x est avocat. jfb(x) : x est une jeune lle bien. sort(x,y) : x sort avec y. Bien entendu, vous compléterez cette modélisation, si c'est nécessaire, avec des constantes, des variables et des fonctions. b) Prouvez à l'aide de la méthode de résolution que la dernière armation est une conséquence logique de l'ensemble des autres armations. Corrigé de l'exercice 5. Modélisation. Formule associée à chaque armation de l'énoncé ; M arie et Jean sont des constantes : (a) ∀x∀y((har(y) ∧ cond(x, y)) → rus(x)) (b) ∀x(mot(x) → ∃y((har(y) ∨ bmw(y)) ∧ cond(x, y))) (c) ∀x∀y((cond(x, y) ∧ bmw(y)) → bra(x)) (d) ∀x(bra(x) → avo(x)) (e) ∀x∀y((jf b(x) ∧ rus(y)) → ¬sort(x, y)) (f) jf b(M arie) ∧ mot(Jean) (g) ¬avo(Jean) → ¬sort(M arie, Jean) Résolution. On va montrer que a ∧ b ∧ c ∧ d ∧ e ∧ f ∧ ¬g est insatisfaisable. Pour cela il faut mettre les formules sous forme clausale. Première étape mise sous forme prenexe : (a) ∀x∀y(¬har(y) ∨ ¬cond(x, y) ∨ rus(x)) (b) ∀x∃y(¬mot(x) ∨ ((har(y) ∨ bmw(y)) ∧ cond(x, y))) 5 Co rri gé (c) ∀x∀y(¬cond(x, y) ∨ ¬bmw(y) ∨ bra(x)) (d) ∀x(¬bra(x) ∨ avo(x)) (e) ∀x∀y(¬jf b(x) ∨ ¬rus(y) ∨ ¬sort(x, y)) (f) jf b(M arie) ∧ mot(Jean) (¬g) ¬avo(Jean) ∧ sort(M arie, Jean) Seule b contient une variable existentielle y , on introduit la fonction unaire de Skolem f . On obtient alors la formule : (b0 ) ∀x(¬mot(x) ∨ ((har(f (x)) ∨ bmw(f (x))) ∧ cond(x, f (x)))) Passage à la forme clausale : C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 = {¬har(y); ¬cond(x, y); rus(x)} = {¬mot(x); har(f (x)); bmw(f (x))} = {¬mot(x); cond(x, f (x))} = {¬cond(x, y); ¬bmw(y); bra(x)} = {¬bra(x); avo(x)} = {¬jf b(x); ¬rus(y); ¬sort(x, y)} = {jf b(M arie)} = {mot(Jean)} = {¬avo(Jean)} = {sort(M arie, Jean)} Résolution : C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 = Res(C10 , C6 , {(x, M arie); (y, Jean)}) = Res(C11 , C7 , {}) = Res(C12 , C1 , {(x, Jean)}) = Res(C13 , C3 , {(x, Jean); (y, f (Jean))}) = Res(C14 , C8 , {}) = Res(C15 , C2 , {(x, Jean)}) = Res(C16 , C8 , {}) = Res(C17 , C4 , {(y, f (Jean))}) = Res(C18 , C3 , {(x, Jean)}) = Res(C19 , C5 , {(x, Jean)}) = Res(C20 , C9 , {}) = Res(C21 , C8 , {}) 6 = {¬jf b(M arie); ¬rus(Jean)} = {¬rus(Jean)} = {¬har(y); ¬cond(Jean, y)} = {¬har(f (Jean)); ¬mot(Jean)} = {¬har(f (Jean))} = {¬mot(Jean); bmw(f (Jean))} = {bmw(f (Jean))} = {¬cond(x, f (Jean)); bra(x)} = {¬mot(Jean); bra(Jean)} = {¬mot(Jean); avo(Jean)} = {¬mot(Jean)} = {}