CS1502 Formal Methods in Computer Science
270 likes | 469 Vues
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
CS1502 Formal Methods in Computer Science
E N D
Presentation Transcript
CS1502 Formal Methods in Computer Science Lecture Notes 10 Resolutionand 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 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 = 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}}
{P, Q} {P} {Q} Example: not satisfiable • 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
Resolvent • Clause R is a resolvent of clauses C1 and C2 if there is a literal in C1 whose negation is in C2 and R consists of all the remaining literals in either clause.Example:{A, C , D} and {B, C} haveresolvent {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 iffS {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 PonesPQ PQ 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 Horn sentence (A C) (B C) (A D) (B D)
Alternate Form of Horn Conjunct • A1 A2... An B (A1 A2 ... An) B (A1 A2 ... An) B B :- A1,A2, …, An. In Prolog:Rule Conditional Form of Horn sentence B if A1, A2, …, An
Special Cases • No positive literalA1 A2... An • No negative literalsB In Prolog, this is a query! (A1 A2 ... An) False In Prolog, this is a fact! True B
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 (AC) 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).