A SIMPLE SUBSET OF THE STEPS INVOLVED IN THEOREM PROVING USING RESOLUTION Steps 1 and 2 could be combined 1. Formulate statements such as: a. “A implies B” or “when A then B” as: B if A b. “All A’s do something” as: do(that) something if an A (using a predicate such as A(x)) 2. Change: a. A if (B and C and D) to: b. A if (B or C or D) to: 3. Use one of the following: a. To prove A, make a new rule b. To show for what x, A(x) is true, make a new rule 4. Given e.g. A or B or C, try, by substitutions if necessary, to obtain a clause of the form , then deduce B or C or D or E. One can represent this graphically as: A or B or C B or C or D or E 5. Apply steps such as step 4 in such a way as to finally deduce a contradiction to some rule B, i.e. to deduce . 6. To prove results such as 3b, examine the sequence of substitutions starting with the X in the new rule e.g. if the sequence is x y t John, then A(John) is true and John is the answer. EXAMPLE. Consider the following set of statements: 1. Marcus is a Pompeian man 2. Pompeians are all Romans. 3. All Romans either hate Caeser, or else are loyal to him. 4. A man will not attempt to assassinate a ruler whom he is loyal to. 5. Caeser is a ruler 6. Marcus tried to assassinate Caeser. Promblem: show that the above facts imply that some specific person hates Caeser.1 One now has to invent appropriate predicates for use in expressing the above facts: such as: man(x) to mean x is a man pompeian(x) to mean x is a Pompeian roman(x) to mean x is a Roman ruler(x) to mean x is a ruler hates(x, y) to mean x hates y isLoyalTo(x, y) to mean x is loyal to y tryAssassinate(x,y) to mean x tried to assassinate y. 1 Since Marcus is the only person referred to by name in these rules, one can expect the answer as to who hates Caeser to be Marcus. But the problem here is to prove that this is so from the given facts. Also, in a more extensive example, there may be many more rules that refer to many other people. Using the above predicates, the data could be expressed as described in step 1 above, as ,e.g.: 1. man(Marcus) 2. Pompeian(Marcus) 3. Roman(x) if Pompeian(x) 4. hate(x, Caeser) or loyalto(x, Caeser) if Roman(x) we need rule 5 to make the “or” exclusive. 5. hate(x, Caeser) or loyalto(x, Caeser) if Roman(x) 8. tryAssassinate(x,y) if man(x) or ruler(y) or LoyalTo(x,y) 7. ruler(Caeser) 8. tryAssassinate(Marcus, Caeser) Transforming these rules as described earlier into a form useful for theorem proving, we get: 1. man(Marcus) 2. Pompeian(Marcus) 3. Roman(k) or Pompeian(k) 4. hate(s,Caeser) or loyalto(s, Caeser) or Roman(x) 5. hate(s,Caeser) or loyalto(s,Caeser) or Roman(x) 6. tryAssassinate(t,y) or man(t) or ruler(y) or loyalto(t,y) 7. ruler(Caeser) 8. tryAssassinate(Marcus, Caeser) So now to determine who hates Caeser, we introduce a new rule, that nobody hates Ceaser: 9. hates(x, Caeser) (which means: for all x, x does not hate Caeser). We then attempt to show, using resolution, that rule 8 is in contradiction to the other rules. In this proof there will a series of substitutions for x, which will result in the contradiction by substituting a value of x for which hates(x, Caeser) is true. Note that, in order to make the substitutions clear, we use different variables in the different rules There is no algorithm for picking which clauses to use in any part of the proof. It’s a matter of thinking ahead combined with trial and error. The wrong choice at some point can make it impossible to proceed to the proof required, while on the other hand there may be many possible correct proofs. Here is a proof for the above example 9. hates(x, Caeser) 4. hate(s,Caeser) or loyalto(s,Caeser) or Roman(x) ) x →s loyalto(s,Caeser) or Roman(s) 3. Roman(k) or Pompeian(k) s→k isLoyalTo(k, Caeser) or Pompeian(x) 2. Pompeian(Marcus) k→Marcus loyalto(Marcus,Caeser) 6. tryAssassinate(t,y) or man(t) or ruler(y) or loyalto(t,y) t→Marcus y→Caeser tryAssassinate(Marcus,Caeser) or man(Marcus) or ruler(Caeser) tryAssassinate(Marcus,Caeser) or man(Marcus) tryAssassinate(Marcus,Caeser) 7. ruler(Caeser) 1. man(Marcus) which is in contradiction to rule 8 The series of substitutions made in producing this contradiction, starting with the x in hates(x, Caeser) was; x → s → k → Marcus We conclude that hates(Marcus, Caeser), i.e. Marcus hates Caeser.
© Copyright 2026 Paperzz