Download presentation
Presentation is loading. Please wait.
Published byAsia Coffield Modified over 9 years ago
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)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.