Presentation is loading. Please wait.

Presentation is loading. Please wait.

AR: clausal logic The step to Resolution. A deeper study: Modus ponens Ground Horn Logic Unification Horn Logic Resolution Clausal Logic Clausal Logic.

Similar presentations


Presentation on theme: "AR: clausal logic The step to Resolution. A deeper study: Modus ponens Ground Horn Logic Unification Horn Logic Resolution Clausal Logic Clausal Logic."— Presentation transcript:

1 AR: clausal logic The step to Resolution

2 A deeper study: Modus ponens Ground Horn Logic Unification Horn Logic Resolution Clausal Logic Clausal Logic

3 3 Representation-power of Horn clauses  Most predicate logic formulae can easily be rewritten in Horn clauses.  Examples:  x cat(x)  dog(x)  pet(x)  x poodle(x)  dog(x)  small(x) pet(x)  cat(x) pet(x)  dog(x) dog(x)  poodle(x) small(x)  poodle(x)  BUT:  x human(x)  male(x)  female(x)  x dog(x)  ~abnormal(x)  has_4_legs(x) ????

4 4 Clausal form  Generalized form of the formulae:  x1 …  xk A1  A2 …  Am  B1  B2 …  Bn  Horn clauses are a special case with m = 1  We assume that S = T  {~F} consists only of clausal formulae.  Goal: prove that S is inconsistent.

5 5 Example: Moore’s problem BlueorRed Blue or Red  Given 3 blocks:  Prove that there is a blue block next to a red block!

6 6 Moore’s problem (2): This would require a case-analysis!  In clausal form: blue(Block1)red(Block3) blue(Block2)  red(Block2) next_to(Block1,Block2)next_to(Block2,Block1)next_to(Block2,Block3)next_to(Block3,Block2)  Prove:  or false  next_to(b1,b2)  blue(b1)  red(b2) is inconsistent.  b1  b2 next_to(b1,b2)  blue(b1)  red(b2)  PROBLEM: Modus ponens is not suitable for blue(Block2)  red(Block2)

7 7 high_qualified(x)  phd(x) earn_early(x)  ~phd(x) rich(x)  high_qualified(x) rich(x)  earn_early(x) (1)(2)(3)(4) Introducing negation in bodies is equivalent:  Example:  Prove: rich(I)  Why equivalent?  (2) is equivalent to earn_early(x)  phd(x) since A  ~B  A  B

8 8 Disjunction versus negation in general:  x1 …  xk A1  A2 …  Am  B1  B2 …  Bn  is equivalent to:  x1 …  xk A1  B1  B2 …  Bn  ~A2  …  ~Am  or to:  x1 …  xk Ai  B1  B2 …  Bn  ~A1 ....  ~Am  Proof: A  ~B  A  B and basic relations between ,  and ~ A  ~B  A  B

9 9 The resolution principle A1  A2  …  Am  B1  …  B  …  Bn C1 ...  B  …  Ck  D1  D2  …  Dl A1  A2  …  Am  C1 ....  Ck  B1 ....  Bn  D1  D2  …  Dl B1 ....  Bn  D1  D2  …  Dl  Propositional case:  Correctness: clear due to:  make from all other disjuncts negated body atoms,  apply generalized modus ponens,  move all these negated body atoms back as disjuncts in the head.

10 10 Resolution: predicate logic  where  = mgu(B,B’).  Correctness:  with a help of the correctness result for the ground case, applied to all instances of this rule A1  A2  …  Am  B1  …  B  …  Bn C1 ...  B’  …  Ck  D1  D2  …  Dl (A1  A2  …  Am  C1 ....  Ck)   (B1 ....  Bn  D1  D2  …  Dl)  (B1 ....  Bn  D1  D2  …  Dl) 

11 11 Also in other forms:  In conjunctive normal form:  with  = mgu(B,B’). A1  A2  …  Am  ~B1  …  ~B  …  ~Bn C1 ...  B’  …  Ck  ~D1  ~D2  …  ~Dl (A1  A2  …  Am  C1 ....  Ck)   (~B1 ....  ~Bn  ~D1  ~D2  …  ~Dl)  (~B1 ....  ~Bn  ~D1  ~D2  …  ~Dl) 

12 12 Once again Moore’s example blue(Block2)  red(Block2) red(Block2)  next_to(Block2,b2)  red(b2) blue(Block1)red(Block3) blue(Block2)  red(Block2) next_to(Block1,Block2)next_to(Block2,Block1)next_to(Block2,Block3)next_to(Block3,Block2) red(Block2)  next_to(Block2,Block3) red(Block3) red(Block2) next_to(Block2,Block3) false  next_to(b1,Block2)  blue(b1) false  next_to(b1,b2)  blue(b1)  red(b2) false  next_to(Block1,Block2) blue(Block1) false  next_to(Block1,Block2) false  next_to(b1,b2)  blue(b1)  red(b2)

13 13 Ph.D. example rich(x) false  rich(I) false  factoring earn_early(x)  highly_qualified(x) rich(y)  highly_qualified(y) rich(x)  rich(x) earn_early(x)  rich(x) rich(y)  earn_early(y) highly_qualified(y)  phd(y) earn_early(x)  phd(x) highly_qualified(x)  phd(x) earn_early(x)  phd(x) rich(x)  highly_qualified(x) rich(x)  earn_early(x) (1)(2)(3)(4) false  rich(I)

14 14 Factoring: in general  Both:  with:  is mgu(B,B’) A1  A2  …  Am  B1  …  B  …  B’ …  Bn (A1  A2  …  Am  B1  …  B  …  …  Bn)   as:  with:  is mgu(A,A’). A1  …  A  …  A’ …  Am  B1  …  Bn (A1  …  A  …  …  Am  B1  …  Bn) 

15 15 Why do we need factoring? p  q p  q false  p q false  p  q q  p (p  q)  (p  ~q)  (~p  q)  (~p  ~q)  Without factoring resolution is not complete !  Example: prove {(p  ~p)  (q  ~q)} inconsistent  Normalization:  Clausal form: p  p q  q p  q q  p You can never get false  !!!!

16 16 Reason?  The length of a formula = the number of atoms (false not included): A1  A2  …  Am  B1  …  B  …  Bn C1 ...  B’  …  Ck  D1  D2  …  Dl (A1  A2  …  Am  C1 ....  Ck)   (B1 ....  Bn  D1  D2  …  Dl)  (B1 ....  Bn  D1  D2  …  Dl) LengthNM N + M - 2  In the previous example all formulas had length 2 You can NEVER get false  (length 0) !

17 17 The resolution procedure :=initial theory (inconsistency to be shown); S:= initial theory (inconsistency to be shown); Consistent:= false; Inconsistent:= false; While not(Consistent) and not(Inconsistent) do If false   S Then Inconsistent := true Else If S contains no pair (F,G) resolvable and not yet resolved yet resolved Then Consistent:= true Then Consistent:= true Else SELECT a pair (F,G) from S, resolvable and not yet resolved; and not yet resolved; H:= factor( resolvent (F,G) ); H:= factor( resolvent (F,G) ); S:= S  H S:= S  H End-while

18 18 Behavior under Horn clause resolution : false ... … ... false  false ... … ... false ... … ...... Linear resolution !

19 19 Behavior under General resolution : General resolution ! … ... false 

20 20 Linear resolution:  The most important differences with Horn clauses:  With Horn clauses the proofs are always LINEAR !  we start with the “goal”  we apply a Horn clause to compute a new goal  etc.  Clausal resolution is NOT linear  Also: factoring is sometimes needed  Linear resolution (a proof is a linear sequence of resolution steps starting with a goal) is one of the most important strategies to make the resolution process efficient.

21 21 Non-determinism in the resolution procedure  SELECT a pair (F,G) : makes it a VERY non- deterministic procedure.  The control problem for resolution is extremely difficult.  A proof is no longer 1 (linear) branch in a tree, but a subgraph of all possible resolutions.  Is it correct? Is it complete? ? Is there a complete strategy ???

22 22 Correctness / Completeness ?  Completeness: There exists a complete strategy (standard example: the Herbrand theorem prover).  Correctness:  If the procedure returns Inconsistent:  Then false  is added  Then false  is logically entailed by S (since the resolution step is correct).  Thus, in all models of S false  is also true  Thus, S has no models

23 23 … ... Correctness/Completeness 2 ?  If the procedure returns Consistent:  Then ALL POSSIBLE resolution steps were done without discovering false .  Now assume that the set was inconsistent.  There exists a COMPLETE strategy: that after some time derives false   But it performs (a part of) the same resolution steps !! Our strategy also produced Our strategy also produced false  … ... …  … false 

24 AR for full predicate logic Normalization to clausal form

25 25 What else is needed for full predicate logic? NOTHING!  Clausal logic is equivalent to full predicate logic:  every theory T in FOL (first order predicate logic) can automatically be converted in a clausal theory T’, such that: T is inconsistent iff T’ is inconsistent

26 26 Propositional: via conjunctive normal form:  Every formula is equivalent to a formula of the form: (A1 ...  An)  (B1  …  Bm)  …  (C1  …  Ck)  where all Ai, Bi, …, Ci are either atomic or ~atomic.  Idea: p  q p  q push all ~ as deep as possible apply distributivity of  and  p  q  q  p q  ~p  Finally: p1  …  pn  ~q1  … ~qm p1  …  pn  q1  …  qm

27 27 Predicate case: main steps Sometimes requires new variable names. Ex.:  x p(x)   x q(x)  x  z p(x)  q(z) Note:  x cloudy(x)   x sunny(x) is not equivalent to  x cloudy(x)  sunny(x)  Prenix normal form (Q1 x) (Q2 y) …(Qn z) F  or  has no quantifiers !  Conjunctive normal form: (Q1 x) (Q2 y) …(Qn z) (.. .. )  (.. .. ) ..  (.. .. )  These 2 steps are interleaved.

28 28 Predicate case: continued Skolem functions: as many arguments as enclosing  -variables  Skolem normal form: transform to: (  x) (  y) …(  z) (.. .. )  (.. .. ) ..  (.. .. )   x rich(x) is replaced by rich(Sk), with Sk being a new constant (‘skolem constant’) that does not appear in the alphabet.  More complex: if  appears nested inside  :  ‘Everyone has a heart’  x person(x)   y heart(y)  has(x,y)  Not correct:  x person(x)  heart(H)  has(x,H)  Correct:  x person(x)  heart(H(x))  has(x,H(x))

29 29 Predicate case: continued  Clausal form:  x  y  z (p(x)  ~q(y)  ~r(y))  (r(A)  q(z))  (r(A)  q(z))  ~s(x,y)  ~s(x,y) S = {  x  y (p(x)  ~q(y)  ~r(y)),  z (r(A)  q(z)),  z (r(A)  q(z)),  x  y ~s(x,y) }  x  y ~s(x,y) } S = {p(x)  q(y)  r(y), r(A)  q(z)), r(A)  q(z)), false  s(x,y) } false  s(x,y) }  Disjunctions:

30 30 Explicit Procedure: 1. Eliminate  en . 2. Move the negations inside: ~(~p)  p, ~(p  q)  ~p  ~q, (analogously for  ) ~  x   x ~, ~  x   x ~ 3. Standardize variable names (make them different). PRENEX NORMAL FORM 4. Move quantifiers to front. INTRODUCE SKOLEMS 5. Eliminate . CONJUNCTIVE FORM 6. Disjunctions inside. DISJUNC. SET 7. Drop . 8. Drop . CLAUSAL FORM 9. ~atoms to the other side.

31 31 Marcus example:  x  y ~(man(x)  ruler(y)  try_assassinate(x,y))  ~loyal_to(x,y)  x  y ~man(x)  ~ruler(y)  ~try_assassinate(x,y)  ~loyal_to(x,y) false  man(x)  ruler(y)  try_assassinate(x,y)  loyal_to(x,y)  x loyal_to(x,f(x)) loyal_to(x,f(x))  Facts 1., 2., 4. and 8. were already o.k.:  ex.: ruler(Caesar)  3.  x Pompeian(x)  Roman(x) : o.k. !  6.  x  y loyal_to(x,y)  7.  x  y man(x)  ruler(y)  try_assassinate(x,y)  ~loyal_to(x,y)

32 32 Axioms in Normal form:  1. man(Marcus)  2. Pompeian(Marcus)  3. Roman(x)  Pompeian(x)  4. ruler(Caesar)  5. loyal_to(x,Caesar)  hates(x,Caesar)  Roman(x)  6. loyal_to(x,f(x))  7. false  man(x)  ruler(y)  try_assassinate(x,y)  loyal_to(x,y)  8. try_assassinate(Marcus,Caesar) To show: hates(Marcus,Caesar) Negation: ~hates(Marcus,Caesar) Normal Form: false  hates(Marcus,Caesar)

33 33 Resolution proof (1): false  hates(Marcus,Caesar) loyal_to(x,Caesar)  hates(x,Caesar)  Roman(x) loyal_to(Marcus,Caesar)  Roman(Marcus) {x/Marcus}5. Roman(x)  Pompeian(x) loyal_to(Marcus,Caesar)  Pompeian(Marcus) {x/Marcus}3. Pompeian(Marcus) loyal_to(Marcus,Caesar) {}2.

34 34 Resolution proof (2) loyal_to(Marcus,Caesar) false  man(x)  ruler(y)  try_assassinate(x,y)  loyal_to(x,y) false  man(Marcus)  ruler(Caesar)  try_assassinate(Marcus,Caesar) 7.{x/Marcus,y/Caesar} man(Marcus) false  ruler(Caesar)  try_assassinate(Marcus,Caesar) 1. {} ruler(Caesar) false  try_assassinate(Marcus,Caesar) 4.{} try_assassinate(Marcus,Caesar) false  8.{}

35 35 Example from Group Theory:  Let  be a group operation.  Prefix notation: p(x,y,z)  x  y = z  Definition of a monoid, with left-neutral and left inverse element:   is defined for all elements of the set:  x  y  z p(x,y,z)   is associative:(x  y)  z = x  (y  z) uv  x  y  z  u  v  w (p(x,y,u)  p(y,z,v))  (p(u,z,w)  p(x,v,w)) (1) (2)

36 36 Example from Group Theory (2):   has a left neutral and a left inverse element:  x (  y p(x,y,y)   y  z p(z,y,x)  Theorem: there exists also a right inverse ! (3)  x (  y p(x,y,y)   y  z p(y,z,x) (4)  To be proved automatically by resolution.

37 37 Normalization: (1)  x  y  z p(x,y,z)  Steps: 1,2,3,4: o.k.  Step 5: skolemization:  x  y p(x,y,m(x,y))  Steps: 6,7: o.k.  Step 8: clausal form: p(x,y,m(x,y))

38 38 Normalization (continued): (2)  x  y  z  u  v  w (p(x,y,u)  p(y,z,v))  (p(u,z,w)  p(x,v,w))  Step 1: eliminate  and  :  x  y  z  u  v  w (p(x,y,u)  p(y,z,v))  ((p(u,z,w)  p(x,v,w))  (p(x,v,w)  p(u,z,w))) ((p(u,z,w)  p(x,v,w))  (p(x,v,w)  p(u,z,w)))  x  y  z  u  v  w (p(x,y,u)  p(y,z,v))  ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w))) ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w)))  x  y  z  u  v  w ~(p(x,y,u)  p(y,z,v))  ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w))) ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w)))

39 39 Normalization (continued):  x  y  z  u  v  w ~(p(x,y,u)  p(y,z,v))  ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w))) ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w)))  x  y  z  u  v  w (~p(x,y,u)  ~p(y,z,v))  ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w))) ((~p(u,z,w)  p(x,v,w))  (~p(x,v,w)  p(u,z,w)))  Step 2: move negation inside:  Steps: 3,4,5 o.k.  Step 6: move disjunctions inside:  x  y  z  u  v  w ((~p(x,y,u)  ~p(y,z,v))  (~p(u,z,w)  p(x,v,w)))  ((~p(x,y,u)  ~p(y,z,v))  (~p(x,v,w)  p(u,z,w))) A  (B  C) A  (B  C) = (A  B)  (A  C) A  B A  C

40 40 Normalization (continued):  x  y  z  u  v  w ((~p(x,y,u)  ~p(y,z,v))  (~p(u,z,w)  p(x,v,w)))  ((~p(x,y,u)  ~p(y,z,v))  (~p(x,v,w)  p(u,z,w)))  x  y  z  u  v  w ((~p(x,y,u)  ~p(y,z,v))  (~p(u,z,w)  p(x,v,w)))  ((~p(x,y,u)  ~p(y,z,v))  (~p(x,v,w)  p(u,z,w)))  + remove redundant parentheses: ( )  x  y  z  u  v  w (~p(x,y,u)  ~p(y,z,v)  ~p(u,z,w)  p(x,v,w))  (~p(x,y,u)  ~p(y,z,v)  ~p(x,v,w)  p(u,z,w))  Steps 7,8: eliminate  en  : ~p(x,y,u)  ~p(y,z,v)  ~p(x,v,w)  p(u,z,w) ~p(x,y,u)  ~p(y,z,v)  ~p(u,z,w)  p(x,v,w)


Download ppt "AR: clausal logic The step to Resolution. A deeper study: Modus ponens Ground Horn Logic Unification Horn Logic Resolution Clausal Logic Clausal Logic."

Similar presentations


Ads by Google