The resolution command is applicable to the formulae of the first order
predicate calculus. These formulae are those predicates that can be built
up from:
the predicates true and false;
the first-order logical connectives
,
,
,
,
,
;
quantifiers
and
;
relations, which may have any number of arguments, each of which is a term,
that is it can be built up from numbers, uninterpreted free variables,
bound variables and function applications whose arguments themselves are terms.
The command attempts to decide the predicate solely from its logical form, that is, it does not interpret the functions and relations (except for equality). For instance it can prove that
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
where P, Q and S are any sets of the same type and R is any binary relation over that type. Here the truth of the statement does not depend upon the meaning of the relations. Any function or relation whose meaning is essential to the truth of the predicate must be expanded out before the resolution command is used. In other words the command can be used to decide only tautologies.
The prover attempts to decide the predicate by a number of well-known resolution techniques of increasing complexity. They are (in order) unit resolution, lock resolution, UR resolution and hyper-resolution. Once a decision is made by one of these methods the result is returned, otherwise the next algorithm is tried.
If a decision is made, the chosen predicate is replaced by true or false respectively. Otherwise, the command still succeeds, the report ``Nothing changed'' is popped up, and no new sequent is created.
Resolution references (in decreasing order of importance) are: (1) Chang & Lee, Symbolic Logic and Mechanical Theorem Proving, Academic Press 1973; (2) Loveland, Automatic Theorem Proving, North Holland, 1978; (3) Robinson, Logic: Function and Form, EUP, 1979.
"resolution" p1 p2
This example applies the resolution command to predicates p1 and p2.