380 likes | 538 Views
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.
E N D
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. • Goal: prove that S is inconsistent.
BlueorRed Example: Moore’s problem • Given 3 blocks: • Prove that there is a blue block next to a red block!
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)
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:
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
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.
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
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)
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
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
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 !!!!
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
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
false ... … ... false ... … ... false ... … ... ... Behavior under Horn clause resolution : Linear resolution ! false
… ... … ... … ... … ... … ... … ... … ... … ... false Behavior underGeneral resolution : General resolution !
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.
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? ?
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
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
… ... … ... … ... … ... … ... … ... … ... … ... … … 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 !!
AR for full predicate logic Normalization to clausal form
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
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.
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.
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 :
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)
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 .
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. xy man(x) ruler(y) try_assassinate(x,y) ~loyal_to(x,y) xy~(man(x) ruler(y) try_assassinate(x,y)) ~loyal_to(x,y) xy~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)
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)
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)
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)
u v Example from Group Theory: • Let be a group operation. • Prefix notation: p(x,y,z)xy = z • Definition of a monoid, with left-neutral and left inverse element: • is defined for all elements of the set: xyz p(x,y,z) (1) • is associative: (x y) z = x (y z) xyzuvw (p(x,y,u) p(y,z,v)) (p(u,z,w) p(x,v,w)) (2)
Example from Group Theory (2): • has a left neutral and a left inverse element: x(y p(x,y,y) yz p(z,y,x) (3) • Theorem: there exists also a right inverse ! x(y p(x,y,y) yz p(y,z,x) (4) • To be proved automatically by resolution.
xy p(x,y,m(x,y)) Normalization: • Steps: 1,2,3,4: o.k. • Step 5: skolemization: (1) xyz p(x,y,z) • Steps: 6,7: o.k. • Step 8: clausal form: p(x,y,m(x,y))
Normalization (continued): • Step 1: eliminate and : (2) xyzuvw (p(x,y,u) p(y,z,v)) (p(u,z,w) p(x,v,w)) xyzuvw (p(x,y,u) p(y,z,v)) ((p(u,z,w) p(x,v,w)) (p(x,v,w) p(u,z,w))) xyzuvw (p(x,y,u) p(y,z,v)) ((~p(u,z,w) p(x,v,w)) (~p(x,v,w) p(u,z,w))) xyzuvw ~(p(x,y,u) p(y,z,v)) ((~p(u,z,w) p(x,v,w)) (~p(x,v,w) p(u,z,w)))
A (B C) A B A C Normalization (continued): xyzuvw ~(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: xyzuvw (~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) xyzuvw ((~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)))
~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): xyzuvw ((~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))) xyzuvw ((~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:( ) xyzuvw (~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 :