Universit´e Paris 7 x novembre 2011 Licence Math-Info (L3)
TD de Logique (Brice Minaud)
Correction du TD 8
L`a o`u un unificateur n’est pas d´efini, on sous-entend que c’est l’identit´e.
Exercice1 :S={(kf cgv4v3f cgv3v4kv3v4v2, kv2v2v1)}
Simplification :{(f cgv4v3, v2),(f cgv3v4, v2),(kv3v4v2, v1)}
R´esolutionσ1:v27→f cgv4v3, reste :{(f cgv3v4, f cgv4v3),(kv3v4f cgv4v3, v1)}
R´esolutionσ2:v17→kv3v4f cgv4v3, reste :{(f cgv3v4, f cgv4v3)}
Simplification :{(c, c),(gv3v4, gv4v3)}
M´enage :{(gv3v4, gv4v3)}
Simplification :{(v3, v4),(v4, v3)}
R´esolutionσ3:v37→v4, reste :{(v4, v4)}
M´enage :∅
Le syst`eme peut donc bien ˆetre unifi´e, et on obtient un unificateur principalσ=σ3◦σ2◦σ1avec : σ(v3) =v4 σ(v1) =kv4v4f cgv4v4 σ(v2) =f cgv4v4
Exercice2 :S={(f v1gdv0, f f cv2gf v1v1c)}
Simplification :{(v1, f cv2),(gdv0, gf v1v1c)}
R´esolution,v17→f cv2, reste :{(gdv0, gf f cv2f cv2c)}
Simplification :{(d, f f cv2f cv2),(v0, c)}
Le syst`eme ne peut pas ˆetre unifi´e : en effet (d, f f cv2f cv2) est incompatible cardest constante et f f cv2f cv26=d.
Exercice3 : Tout d’abord, avant d’appliquer la r´esolution, on s´epare les noms de variables uti- lis´ees dans les deux clauses :
Sv0⇒(P v0∨Rv0) (P v2∧P f v3)⇒Qv2v3 Les seules termes qu’on peut unifier sontP v0avecP v2, etP v0 avecP f v3.
Dans le premier cas, on utilise la substitutionσ:v27→v0; les deux clauses deviennent donc : Sv0⇒(P v0∨Rv0) (P v0∧P f v3)⇒Qv0v3
Et la coupure parP v0donne la nouvelle clause :
(Sv0∧P f v3)⇒(Rv0∨Qv0v3)
Dans le second cas on utilise la substitution σ: v0 7→ f v3, et on obtient de la mˆeme fa¸con la nouvelle clause :
(Sf v3∧P v2)⇒(Rf v3∨Qv2v3) Exercice4 :
a) (7) Qf c⇒: coupure de (1), (6) % Sc, par unification deSv0 avecScparv07→c (8) P f c⇒: coupure de (3), (7) %Qf c, par unification deQv0avecQf cparv07→f c (9) (P v1∧Rf cv1)⇒ : coupure de (4), (8) % P f c, par unification deP v0 avecP f c par
v07→f c
(10) P c ⇒ Sc : coupure de (2), (9) % Rf cc, par unification de Rf v0v0 avec Rf cv1 par l’unificateurv07→c, v17→c
(11) ⇒Sc: coupure de (5), (10) %P c, par unification deP cavec lui-mˆeme (12) : coupure de (6), (11) %Sc, par unification deSc avec lui-mˆeme
?b) (7) ⇒Rf cc: coupure de (2), (6) %Sc, par unification deSv0avecScparv07→c (8) P c ⇒ P f c : coupure de (4), (7) % Rf cc, par unification de Rv0v1 avec Rf cc par
l’unificateurv07→f c, v17→c
(9) ⇒P f c : coupure de (5), (8) %P c
(10) ⇒Qf c: coupure de (3), (9) %P f c, par unification deP v0 avecP f cparv07→f c
2
(11) ⇒Sc: coupure de (1), (10) %Qf c, par unification deQf v0 avecQf c parv07→c (12) : coupure de (6), (11) %Sc
Note : pour faire les choses proprement, on aurait d’abord dˆu s´eparer les variables utilis´ees dans toutes les clauses, comme dans l’exercice pr´ec´edent. Ici il n’y a jamais d’ambigu¨ıt´e donc on s’est permis de ne pas le faire.
Exercice5 :
a) Pour n’importe quel syst`emeS,Sprouve une formuleF ssiS∪ {¬F}est contradictoire. (En effet,S prouveF ssi tous les mod`eles deS satisfontF, ssi aucun mod`ele deS satisfait ¬F, ssi il n’y a aucun mod`ele deS∪ {F}, ssiS∪ {F}est contradictoire.)
b) Il suffit de faire la coupure de (1) et (2) par rapport `aRv0gv0, avec la substitutionv17→gv0. c) On fait la mˆeme coupure que dans la question pr´ec´edente, sauf qu’on utilise la substitution v1 7→gc, v07→c pour obtenir la premi`ere clause, v1 7→gc, v07→f c pour la seconde. On fait donc la coupure par rapport `aRcgcet Rf cgf crespectivement.
d) L’id´ee est qu’on a d´eriv´e ⇒Rcf c, ⇒Rf cf f c et qu’on a depuis la d´epart ⇒Rf f cc: on a donc un contrexemple `a la clause (4). Formellement, on fait la coupure de la clause⇒Rcf c et la clause (4) par rapport `a Rcf c avec la substitution v0 7→ c, v1 7→ f c, v2 7→ f f c, pour obtenir Rf cf f c∧Rf f cc ⇒. Puis on fait la coupure de cette clause avec ⇒ Rf cf f c pour obtenirRf f cc⇒. Enfin on fait la coupure de cette clause avec la clause (4), ce qui donne. Exercice6 :
a) On obtient le syst`eme de clauses suivant : (1) ⇒P a
(2) Rv0⇒Qav0
(3) (P v0∧Sv1∧Qv0v1)⇒ (4) ⇒Rb
(5) ⇒Sb
b) (6) ⇒Qab: coupure de (2), (4) % Rb, par unification deRv0avecRbparv07→b (7) (P a∧Sb) ⇒ : coupure de (3), (6) % Qab, par unification de Qv0v1 avec Qab par
l’unificateurv07→a, v17→b (8) Sb⇒: coupure de (1), (7) %P a (9) : coupure de (5), (8) %Sb
Exercice7 :On consid`ere le langage form´e des deux symboles de constanteaetb, des symboles de fonction unairehetk, et des symboles de fonction binairef etg. Unifier les syst`emes suivants :
a) {(gv0ghbgv2v3, gggv5v1hv4ghbv0)}
Simplification :{(v0, ggv5v1hv4),(ghbgv2v3, ghbv0)}
R´esolutionσ1:v07→ggv5v1hv4, reste :{(ghbgv2v3, ghbggv5v1hv4)}
Simplification :{(hb, hb),(gv2v3, ggv5v1hv4)}
M´enage :{(gv2v3, ggv5v1hv4)}
Simplification :{(v2, gv5v1),(v3, hv4)}
R´esolutionσ2:v27→gv5v1, reste : (v3, hv4) R´esolutionσ3:v37→hv4, reste :∅
Ainsi le syst`eme est bien unifiable, et on a un unificateurσ=σ3◦σ2◦σ1 avec : σ(v3) =hv4 σ(v2) =gv5v1 σ(v0) =ggv5v1hv4 b-e) Mˆeme principe que ci-dessus, et que les exercices 1 et 2.