SEARCH AND REPRESENTATION
Chapter 3 PREDICATE LOGIC
3.2 FIRST ORDER PREDICATE LOGIC
3.2.8 RESOLUTION THE BASIC IDEA
We are now ready to discuss the issue of reasoning using resolution. The key idea for the resolution method is that it is a refutation proof -- use the knowledge base and the negated goal to obtain null clause (which indicates contradiction). Since the knowledge base by itself is consistent, the contradiction must be introduced by the negated goal. As a result, we have to conclude that the original goal is true. The resolution proof can be considered as a generalization of modus ponens, because it can do more things than modus ponens does. The knowledge base used in resolution proof takes the so called clause form, which is a form of conjunction of disjuncts: each
individual clause is expressed with disjunction as the connective and no conjunction is allowed within each disjunct. For example, (a ∧ b) ∨ c is not in clause form, but it can be converted to clause form, because it can be rewritten as (a ∨ c) ∧ (b ∨ c), which is in clause form, because both (a ∨ c) and (b ∨ c) are disjunts. The advantage of restricting to clause form is to make the proof process as an automated one.
In general, there are several steps for resolution refutation proofs: change to clause form; negate the goal; resolve clauses using substitution; and produce contradiction. The following are nine steps needed to convert a predicate into its equivalent clause form.
1. Eliminate the → by using the inference laws introduced earlier. 2. Push ¬ inside to reduce the scope of negation as much as possible.
3. Standardize variable names by renaming all variables so that variables bound by different quantifies have unique names.
4. Move all quantifiers to the left without changing their order.
5 . Eliminate all existential quantifiers through skolemization, which is illustrated by the following examples. ∃X∀Y p(X,Y) can be rewritten as p(X0, Y). ∀X∀Y∃Z q(Z) can be written as q(f(X,Y)), here X0 is a Skolem
constant and f is called a Skolem function. Note that in both cases the existentially quantified variable was replaced by a function which has all the universally quantified variables appearing before this variable as its arguments. In the first example, there is no variable appearing before X, so X becomes a constant (we can name it in any way, because we just want to denote it as a constant, the exact content is not of our concern). In the second example, universally quantified variables X and Y are the arguments of the new function, because it depends on the actual values of X and Y (again, we do not care about the exact name of this function). 6. Drop all universal quantification.
7. Convert the expression to the conjunct of disjuncts form. 8. Make each conjunct a separate clause.
9. In each clause generated by Step 8 give the variables different names. Note that these nine steps should be applied to each predicate statement in the knowledge base; so if the knowledge base is quite large, this conversion could be quite tedious. Fortunately it is not necessarily to do something in some steps (because the requirement is already satisfied). For a detailed discussion of these steps involved in conversion to clause form, the reader is referred to [Luger and Stubblefiled 1998]. In the following, we illustrate the general steps of resolution proof using a very simple example, which also includes the conversion of clause form.
Given: A man is a person. All persons will die. Socrates is a person.
The proof can be done by invoking modus-ponens twice (try it!). If we use resolution proof instead, we first do the conversion. The result of conversion for each predicate statement (left) is shown in the right.
Predicate form Clause form From what is given:
1. ∀ X man(X) → person(X) ¬man(X) ∨ person(X) 2. man(scorates) man(scorates) 3. ∀Y (person(Y) →die(Y)) ¬person(Y) ∨ die(Y) Negated goal:
4. ¬die(socrates) ¬die(socrates)
The process of the resolution proof is shown in Figure 3.1. The two clauses, "¬man(X) ∨ person(X)" and "¬person(Y) ∨ die(Y)" are resolved to form a resolvant "¬man(Y) ∨ die(Y)." These two clauses can be resolved because they are opposite literals. (Since resolvants are produced by two clauses, the resolution method discussed here is called binary resolution.) The resolvant is constructed by take the disjunction of all the other atoms appearing in these two parent clauses. Also note the role of unification in this process. The entire proof is done as the construction of the resolution tree (the root is at bottom, an empty clause as the root indicates a contradiction has been found).
Figure 3.1 A resolution proof tree
The following are some important properties of resolution proof:
• Refutation completeness: The empty or null clause can always be generated whenever contradiction in the set of clauses exists.
• Soundness: It produces only expressions that logically follow.
¬man(X) ∨ person(X) ¬person(Y) ∨ die(Y)
{Y/X}
¬man(Y) ∨ die(Y) man(socrates) {socrates/Y}
die(socrates) ¬die(scorates)
Here is another example of resolution proof: Given: ∀X p(X) →q(X).
∀Y q(Y) → r(Y). Goal: ∀Z p(Z) → r(Z).
We first convert to clause form (without connectives like ¬, → and in disjunct form):
(i) ¬p(X) ∨ q(X) (ii) ¬q(Y) ∨ r(Y)
To convert the negated goal to clause form, we have the following steps: ¬(∀Z p(Z) → r(Z))
= ¬(∀Z ¬p(Z) ∨ r(Z)) = ∃Z p(Z) ∧ ¬ r(Z)
= p(z0) ∧¬r(z0) (The step illustrates skolmization.)
Since the pieces used in resolution proof should be in disjunct form (these disjuntions are conjuncted), the negated goal is split into two clauses:
(iii) p(Z0)
(iv) ¬ r(Z0)
The steps of the resolution is shown in Figure 3.2.
Figure 3.2 Another resolution proof tree (ii) (iv) z0/Y (v) ¬q(z0) (i) z0/X (vi) ¬p(z0) (iii) []