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)}
= {}