VIEWS: 5 PAGES: 11 POSTED ON: 9/14/2011 Public Domain
ITCS 6150-8150 Fall 2011 Jing Xiao Inference in First Order Logic (Chapt. 9) Given KB, find if KB|= which is a FOL sentence) Also can be viewed as theorem proving. Ideas: (1) Transform (KB and WFF’s into certain normal forms (2) Prove KB|= by resolution (P345) Transforming WFF's into Conjunctive Normal Form, also called Clause Form (P345) A formula in the first-order logic is said to be in a prenex normal form iff it is in the form of (Q1x1)...(Qnxn)(M) where every (Qixi), i=1, ..., n is either (xi) or xi), and M is a formula containing no quantifiers. (Q1x1)...(Qnxn) is called the prefix, and M is called the matrix of the formula. Here are some formulas in prenex normal form: (x)(y)(P(x,y)^Q(y)), (x)(y)(~P(x,y) -> Q(y)), (x)(y)(z)(Q(x,y) -> R(z)) 1 ITCS 6150-8150 Fall 2011 Jing Xiao Transform WFF’s into Prenex Normal Form: In addition to the equivalence laws introduced for propositional logic, there are also the following laws for first-order logic: let G be a formula that does not contain variable x. 1) (Qx)F(x) G = (Qx) (F(x) G) 2) (Qx)F(x) ^ G = (Qx) (F(x) ^ G) 3) ~((x)F(x)) = (x) (~F(x)) 4) ~((x) F(x)) = (x) (~F(x) 5) (x) F(x) ^ (x) H(x) = (x) (F(x) ^ H(x)) 6) (x) F(x) (x) H(x) = (x) (F(x) H(x)) How about (x) F(x) (x) H(x) and (x) F(x) ^ (x) H(x) ? For cases like that, we have to do something special. Since every bound variable in a formula can be considered as a dummy variable, it can be renamed z, and the formula (x)H(x) becomes (z)H(z); that is (x)H(x) = (z)H(z). Suppose variable z does not appear in F(x), then 7) (x) F(x) (x) H(x) = (x) F(x) (z) H(z) (renaming all x's occurring) 2 ITCS 6150-8150 Fall 2011 Jing Xiao = (x)(z) (F(x) H(z)) Similarly, we can have 8) (x)F(x) ^ (x)H(x) = (x) F(x) ^ (z) H(z) = (x)(z) (F(x) ^ H(z)) Using these laws, we can always transform a given formula into prenex normal form: Step 1: Eliminate <-> and -> using laws F <-> G = (F -> G) ^ (G -> F) F -> G = ~F V G Step 2: Bring the negation signs immediately before atoms by repeatedly using ~(~F) = F De Morgan's laws: ~(F V G) = ~F ^ ~G ~(F ^ G) = ~F V ~G, and the laws 3) and 4) Step 3: Rename bound variables if necessary Step 4: Move the quantifiers to the left of the entire formula to obtain a prenex form by using the laws 1), 2), 5), 6), 7), 8) 3 ITCS 6150-8150 Fall 2011 Jing Xiao Examples. Transform a formula in prenex normal form to clause form --- a set of clauses: 1) Eliminate existential quantifiers by substituting for the variable a constant or a function that contributes to the desired truth value of the formula. Example 1: (y)(President(y)) can be transformed into (President(S1)) Example 2: (x)(y)(father-of(y, x)) can be transformed into (x)(father-of(S(x), x)). In this case, the substitution has to be bounded by the universal quantifier since the existential quantifier occurs within the scope of the universal one. These substitutions are called Skolem functions or constants. 2) Drop the prefix (universal quantifiers) with the assumption that any variable in the matrix is universally quantified. 4 ITCS 6150-8150 Fall 2011 Jing Xiao 3) Convert the matrix (i.e., formula w/o the quantifiers) into a conjunction of disjuncts, i.e., conjunctive normal form. 4) Make each disjunct a clause so that the formula now becomes a set of clauses. 5) Rename the variables so that no two clauses make reference to the same variable. (We do this to keep clauses in their most general form). Example. Theorem Proving by Resolution (P277) -- A Complete Inference Procedure Theorem proving: Given a set of axioms (or known theorems), prove that a WFF P is true. Idea of Resolution: prove the theorem by refutation, i.e., prove that ~P is not true. Procedure: 1) First, transform all axioms to a set of clauses S. 2) Transform ~P to clauses and add them to the set S. Note that we assume ~P is valid, therefore, all the 5 ITCS 6150-8150 Fall 2011 Jing Xiao clauses generated from it are valid because of the conjunctive relationships. 3) Repeat until a contradiction is found: a) pick up two clauses from S and try to resolve them to one clause by the rule of resolution; b) if the resolvent is empty, a contradiction is found and the proof is done else, add the resolvent to S. Example: resolution in propositional logic. How to resolve two clauses: In propositional logic: If there are any pair of literals L and ~L such that one clause contains L and the other contains ~L, then eliminate L and ~L from the clauses. The resolvent will be the disjunction of the rest of the literals of both clauses. In first-order logic: - If there are a pair of unifiable (or complementary) literals T1 and ~T2 such that one clause contains T1 6 ITCS 6150-8150 Fall 2011 Jing Xiao and the other contains T2, then the resolvent will be the disjunction of the rest of the literals of both clauses with proper substitution performed through the unification process. - If there is more than one pair of complementary literals, only one pair should be omitted from the resolvent. What is unification and why it is needed? (P270) Consider examples: man(John) and ~man(Spot) – even if man and ~man are complementary, the two literals are not. We say man(John) and man(Spot) cannot be unified. ~hate(x, y) and hate(Marcus, z) – in this case, Marcus is one instance of x. We can substitute Marcus for x, expressed as Marcus/x. Also, for y and z, we can substitute one for another, say, z/y. With the substitutions, we will have two complementary literals: ~hate(Marcus, y) and hate(Marcus, y). Hence, the original two literals are unifiable. 7 ITCS 6150-8150 Fall 2011 Jing Xiao Question: can we x/Marcus? Note that 1) only variables can be replaced by substituents. 2) because the final substitution produced by the unification process will be used by the resolution procedure, it is useful to generate the most general unifier possible. For example, in the above example, we do not want to substitute a particular instance, say Caesar, to y or z. 3) A function cannot substitute its arguments. E.g., f(x, x) and f(g(x), g(x)) Question: can we x/g(x)? No, since g(x) is more specific than x. The objective of the unification procedure is to discover at least one substitution that causes two literals to match. Example: Given: - Steve only likes easy courses. - Science courses are hard. - All the courses in the basketweaving department are easy. - BK301 is a basketweaving course. Prove “Steve likes BK301” by resolution. 8 ITCS 6150-8150 Fall 2011 Jing Xiao Step 1: form WFF’s in First-order Logic Axioms: (x) (EasyCourse(x) <=> Likes(Steves, x)) (x) (SciCourse(x) => ~EasyCourse(x)) (x) (BKCourse(x)=> EasyCourse(x)) BKCourse(BK301) Prove: Likes(Steve, BK301) Step 2: convert the WFF’s into a set of clauses, and add the negation of the theorem to the set. (1) ~EasyCourse(x) Likes(Steve, x) (2) EasyCourse(x) ~Likes(Steve, x) (3) ~SciCourse(x) ~EasyCourse(x) (4) ~BKCourse(x) EasyCourse(x) (5) BKCourse(BK301) (6) ~Likes(Steve, BK301) Step 3: apply resolution algorithm (1) (4) \ / Likes(Steve, x) ~BKCourse(x) (5) \ / Likes(Steve, BK301) (6) \ / ٱ 9 ITCS 6150-8150 Fall 2011 Jing Xiao Therefore, “Steve likes BK301” is true. Issues of concern: 1) How can it detect if a contradiction cannot be generated, therefore the resolution process cannot halt, and the theorem cannot be proven? Note: the resolution process is complete in the sense that it can always prove the theorem if KB |= . However, if KB | , then it cannot always prove that. The following strategies help to halt the algorithm: a) If the axioms do not contain the literals that the theorem to be proven contains, then the theorem cannot be proven. (why?) b) If the only resolvents that can be generated have been generated before, i.e., no new resolvent can be generated, then the theorem cannot be proven. 2) How to select two clauses to speed up the process of proof? (Resolution strategy) P284-286 10 ITCS 6150-8150 Fall 2011 Jing Xiao a) Unit-preference strategy: whenever possible, resolve with clauses that have a single literal. Such resolutions generate new clauses with fewer literals than the larger of their parent clauses. b) Set-of support strategy: whenever possible, resolve either with one of the clauses that is part of the statement we are trying to refute or with a clause generated by a resolution with such a clause. c) Input-resolution strategy: every resolution combines one of the input clauses (KB or the query) with some other clause. d) Linear-resolution strategy: a slight generalization of the input-resolution strategy. e) Eliminate certain clauses as soon as they are generated so that they cannot participate in later resolutions. Two kinds of clauses can be eliminated: tautologies and clauses that are subsumed by other clauses. For example, PVQ is subsumed by P. f) Only resolve pairs of clauses that contain complementary literals. Note: you can start working on HW#3. 11