Characteristics of the ultimate highest-level language:
Objects are represented by terms.
Relationships are expressed with predicate symbols.
Note: Predicate calculus distinguishes between function symbols (functors used to construct terms) and predicate symbols (functors used to construct propositions), but Prolog does not. Most versions of Prolog require that there be no space between the functor and the opening parenthesis, but allow spaces between the parentheses, the arguments, and the comma(s).
Note: "Meaning" is a correspondence drawn between axioms and reality.
A variety of proof techniques is available.
E.g., modus ponens
A -> B A --------- B
The Resolution Principle [J.A. Robinson, 1965]
PROBLEM: Given a large set of available proof techniques, how can a machine be programmed to select a relevant technique correctly and efficiently?
SOLUTION: A single principle -- the resolution principle -- was proposed which is both
REQUIREMENT: All sentences of predicate logic must be converted to a standardized form -- a set of clauses in conjunctive normal form (CNF).
There is an algorithm for converting statements into conjunctive normal form:
Clausal form: Given a statement in CNF, convert it to clausal form:
Resolution: A rule of inference which relates formulae in clausal form in a mechanical way to generate a new clause that is a consequence of the original set of support ("given" clauses).
E.g., PREMISES:
| 1. | ~p V ~n | Premise written as a clause. |
| 2. | q V n | Premise written as a clause. |
| 3. | p | Clauses obtained by negating the conclusion p -> q |
| 4. | ~q | |
| 5. | ~p V q | Steps 1 and 2 and resolution. |
| 6. | q | Steps 3 and 5 and resolution. |
| 7. | Contradiction | Steps 4 and 6 and resolution. |