1 / 38

AR: clausal logic

AR: clausal logic. The step to Resolution. Generalized form of the formulae:.  x1 …  xk A1  A2 …  Am  B1  B2 …  Bn. Clausal form. Horn clauses are a special case with m = 1 We assume that S = T  {~F} consists only of clausal formulae.

moe
Download Presentation

AR: clausal logic

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AR: clausal logic The step to Resolution

  2. Generalized form of the formulae: • x1 … xk A1  A2 …  Am B1 B2 … Bn Clausal form • 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.

  3. BlueorRed Example: Moore’s problem • Given 3 blocks: • Prove that there is a blue block next to a red block!

  4. 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: • orfalse  next_to(b1,b2)  blue(b1)  red(b2)is inconsistent. b1 b2 next_to(b1,b2)  blue(b1)  red(b2) This would require a case-analysis! Moore’s problem (2): • PROBLEM: Modus ponens is not suitable forblue(Block2)  red(Block2)

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

  6. 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 Disjunction versus negation in general: x1 … xk A1  A2 …  Am B1 B2 … Bn

  7. A1  A2  …  Am  B1  … B …  Bn C1  ... B …  Ck  D1  D2  …  Dl A1  A2  …  Am  C1  .. ..  Ck  B1  .. ..  Bn  D1  D2  …  Dl The resolution principle • 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.

  8. A1  A2  …  Am  B1  … B …  Bn C1  ... B’ …  Ck  D1  D2  …  Dl (A1  A2  …  Am  C1  .. ..  Ck)  (B1  .. ..  Bn  D1  D2  …  Dl)  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

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

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

  11. 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)  Factoring: in general

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

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

  14. Whilenot(Consistent) and not(Inconsistent) do Else Else SELECT a pair (F,G) from S, resolvable and not yet resolved; The resolution procedure S:=initial theory (inconsistency to be shown); Consistent:= false; Inconsistent:= false; Iffalse SThenInconsistent := true IfScontains no pair(F,G)resolvable and not yet resolved ThenConsistent:= true H:= factor( resolvent (F,G) ); S:= S H End-while

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

  16. …  ... …  ... …  ... …  ... …  ... …  ... …  ... …  ... false  Behavior underGeneral resolution : General resolution !

  17. With Horn clausesthe proofs are always LINEAR ! Linear resolution: • The most important differences with Horn clauses: • 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.

  18. Is there a complete strategy ??? 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? ?

  19. Correctness / Semi-decidability ? • Semi-deciding: There exists a semi-deciding 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 Sfalse  is also true • Thus, S has no models

  20. Whilenot(Consistent) and not(Inconsistent) do Else Else SELECT a pair (F,G) from S, resolvable and not yet resolved; The resolution procedure S:=initial theory (inconsistency to be shown); Consistent:= false; Inconsistent:= false; Iffalse SThenInconsistent := true IfScontains no pair(F,G)resolvable and not yet resolved ThenConsistent:= true H:= factor( resolvent (F,G) ); S:= S H End-while

  21. …  ... …  ... …  ... …  ... …  ... …  ... …  ... …  ... …  … false  …  ... …  ... …  ... Our strategy also produced false  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 !!

  22. AR for full predicate logic Normalization to clausal form

  23. NOTHING! What else is needed for full predicate logic? • 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: Tis inconsistentiffT’is inconsistent

  24. 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 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.

  25. Prenix normal form (Q1 x) (Q2 y) …(Qn z) F has no quantifiers !  or  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) • Conjunctive normal form: (Q1 x) (Q2 y) …(Qn z) ( ..  .. )  ( ..  .. )  ..  ( ..  .. ) Predicate case: main steps • These 2 steps are interleaved.

  26. Skolem normal form: transform to: ( x) ( y) …( z) ( ..  .. )  ( ..  .. )  ..  ( ..  .. ) • ‘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)) Skolem functions: as many arguments as enclosing -variables Predicate case: continued • 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 :

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

  28. 4. Move quantifiers to front. PRENEX NORMAL FORM 5. Eliminate  . INTRODUCE SKOLEMS 6. Disjunctions inside. CONJUNCTIVE FORM 7. Drop . DISJUNC. SET 9. ~atoms to the other side. CLAUSAL FORM 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). 8. Drop .

  29. x loyal_to(x,f(x)) loyal_to(x,f(x)) Marcus example: • Facts 1. , 2. , 4. and 8. were already o.k.: • ex.:ruler(Caesar) • 3.x Pompeian(x)  Roman(x) : o.k. ! • 6.x yloyal_to(x,y) • 7. 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) 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)

  30. 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)

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

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

  33. u v 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) (1) •  is associative: (x y)  z = x (y  z) xyzuvw (p(x,y,u)  p(y,z,v))  (p(u,z,w)  p(x,v,w)) (2)

  34. 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) (3) • Theorem: there exists also a right inverse ! x(y p(x,y,y) yz p(y,z,x) (4) • To be proved automatically by resolution.

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

  36. Normalization (continued): • Step 1: eliminate  and  : (2) xyzuvw (p(x,y,u)  p(y,z,v))  (p(u,z,w)  p(x,v,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))) 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))) 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)))

  37. A  (B  C) A  B A  C 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))) • Step 2: move negation 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,v,w)  p(u,z,w))) • Steps:3,4,5 o.k. • Step 6: move disjunctions inside: A (B  C) = (A  B)  (A  C) 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)))

  38. ~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) 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 :

More Related