CS1502 Formal Methods in Computer Science Lecture Notes 10 Resolution and Horn Sentences
Resolution Theorem Proving Method for searching for proofs automatically Sentences are translated into CNF, and then to sets of clauses At each step, a new clause is derived from two clauses you already have Proof steps all use the same rule If reach (_|_), sentences were not satisfiable Start: premises + negation of goal End: if reach , premises |= goal
Resolution Theorem Proving Method for searching for proofs automatically Sentences are translated into CNF, and then to sets of clauses At each step, a new clause is derived from two clauses you already have Proof steps all use the same rule If reach (_|_), sentences were not satisfiable Start: premises + negation of goal End: if reach , premises |= goal
Conversion to Clausal Form Use P Q equiv ~P v Q to remove Use P Q equiv ((~P v Q) ^ (~Q v P)) to remove Use P Q equiv ((~P v Q) ^ (~Q v P)) to remove New 1st Step! We hadn’t done conditionals yet Use DeMorgan’s laws and ~Elim to move ~ as far inward as possible (gives NNF) Use the distributive laws until the sentence is in CNF
Clausal Form Given a sentence S written in CNF S = ( ) ( ) ... ( ) Convert each ( ) into a clause - a set consisting of each of the literals in ( ). Example: S= (A) ( B C D) ( A D) Clauses are: {A}, { B, C, D}, { A, D}
Resolution Theorem Proving Method for searching for proofs automatically Sentences are translated into CNF, and then to sets of clauses At each step, a new clause is derived from two clauses you already have Proof steps all use the same rule If reach (_|_), sentences were not satisfiable Start: premises + negation of goal End: if reach , premises |= goal
Satisfying a Set of Clauses Assigning truth-values to the atomic sentences so the CNF sentence the set corresponds to is true. {{A, C, D}, {C},{ A},{A, D}} is satisfied by {{A, C, D}, {C},{ A},{A, D}} is satisfied by A = False C = True D = True A = False C = True D = True
Empty Clause {} denoted by . The empty clause is not satisfiable We want {{A}, { A}} to lead to {} ( ) The basic resolution step involves “canceling” pos and neg matching literals from two clauses So, we derive {} ( ) from {{A}, { A}}
Example: not satisfiable P Q P Q { P, Q} {P} { Q} { P, Q} {P} { Q}
Resolution Theorem Proving Method for searching for proofs automatically Sentences are translated into CNF, and then to sets of clauses At each step, a new clause is derived from two clauses you already have Proof steps all use the same rule If reach (_|_), sentences were not satisfiable Start: premises + negation of goal End: if reach , premises |= goal
Resolution Step
Res. Step with Larger Clauses
Resolvent Clause R is a resolvent of clauses C 1 and C 2 if there is a literal in C 1 whose negation is in C 2 and R consists of all the remaining literals in either clause. Example: {A, C, D} and {B, C} have resolvent { A, B, D }
Resolution Theorem Proving Method for searching for proofs automatically Sentences are translated into CNF, and then to sets of clauses At each step, a new clause is derived from two clauses you already have Proof steps all use the same rule If reach (_|_), sentences were not satisfiable Start: premises + negation of goal End: if reach , premises |= goal
Resolution Theorem For any set of clauses that are not satisfiable, it is possible to arrive at the empty clause by using successive resolutions.
Resolution Theorem Proving Method for searching for proofs automatically Sentences are translated into CNF, and then to sets of clauses At each step, a new clause is derived from two clauses you already have Proof steps all use the same rule If reach (_|_), sentences were not satisfiable Start: premises + negation of goal End: if reach , premises |= goal
Using Resolution to Determine Validity of Arguments Q is a logical consequence of P1, P2, …, Pn iff P1 ^ P2 ^ … ^ Pn ^ ~Q is not satisfiable For sentences in clausal form: Q is a logical consequence of a set of clauses S iff S { Q} is not satisfiable. So, convert premises + negation of goal to clausal form, and do resolution steps, trying to reach {} ( )
Is this Argument Valid? B v C ~C v ~D A v D ~B v ~D A
Example Show A (B C) ( C D) (A D) ( B D) is not satisfiable. Clauses: { A}, {B, C}, { C, D}, {A, D}, { B, D}. { A} {A,D} {B,C} { C, D} {D} {B, D} { B, D} { D}
Example Modus Pones P Q P Q or { P,Q} P {P} Q negate to get { Q} Apply resolution: { P,Q} {P} {Q} { Q}
What is a Horn sentence? A positive literal is any literal that is not preceded with a . For example, Cube(b) and P are positive literals. A sentence S is a Horn sentence if and only if it is in CNF and every conjunct has at most one positive literal.
Examples (A B C) ( A B) (A B C) (D) (A B) ( C D) Horn sentence Not Horn sentence (A C) (B C) (A D) (B D) Horn sentence
Alternate Form of Horn Conjunct A 1 A 2 ... A n B (A 1 A 2 ... A n ) B (A 1 A 2 ... A n ) B Conditional Form of Horn sentence B :- A 1, A 2, …, A n. In Prolog: Rule B if A 1, A 2, …, A n
Special Cases No positive literal A 1 A 2 ... A n No negative literals B (A 1 A 2 ... A n ) False True B In Prolog, this is a fact! In Prolog, this is a query!
Why are Horn sentences important? Very efficient algorithms exist for determining if a set of Horn sentences is satisfiable
CNF to PROLOG A B C is (A C) B is (A C) B B :- A, C. A. C. Query: :- B. Answer: Yes.
Example Prolog Program grandfather(X,Y) :- father(X,Z), father(Z,Y). grandfather(X,Y) :- father(X,Z), mother(Z,Y). mother(ann,bill). father(carl,ed). father(nick,ann). father(ed,sam).