| OCR Text |
Show 10 2.1.2 Resolution and Unlflcatton For proofs to be constructed mechanically by a computer program, some simple, repetitive, and uniform method of constructing the proof is desirable. For most logic programming systems, the resolution principle [39] provides this mechanical proof procedure. The resolution principle is based on the observation that (a v b) A (-,a v b) :::> b The left side of this implication is just a set of clauses in conjunctive normal form. Thus, given a set of Horn Clauses (such as a logic program) expressed in conjunctive normal form, a new set of clauses can be built by removing from the the set all terms which appear in both positive and negative form. This step is called resolution, and the resulting conjunction is called the resolvent. If the resolution step is executed repeatedly and the final resolvent contains no conjuncts (they have all been "resolved away"), the resulting null resolvent implies that the original set of clauses was inconsistent. Resolution-based logic programming systems use resolution as their basic execution model by adding the negation of a goal to the list of clauses participating in the resolution process. A goal is a conjunction of terms identical in form to the body of a clause and are depicted in the set of clauses by the notation ?- <goal>. If resolution produces a null resolvent, then the original clauses plus the negation of the goal must be inconsistent. Since the original program is assumed to consist of true clauses, the negation of the goal must be inconsistent with them, so the goal itself is consistent. The goal is said to be "proved" by this method. This treatment of resolution has been carried out with atomic terms. When complex terms are involved, resolving two clauses involves more than a simple comparison of positive and negative terms. Terms are more generally handled through unification. When two terms are unified, they are compared to determine if there is some syntactic substitution which can be made for any variables occurring in the terms which would make them identical. If such a substitution is found for the |