The Unit Proof and the Input Proof in Theorem Proving

The Unit Proof and the Input Proof in
Theorem Proving
C. L. C H A N G
National Institutes of Health,* Bethesda, Maryland
.ABSTRACT. A resolution in which one of the two p a r e n t clauses is a unit clause is called a unit
resolution, whereas a resolution in which one of the two p a r e n t clauses is an original input clause
is called an i n p u t resolution. A unit (input) proof is a deduction of the e m p t y clause [] such
t h a t every resolution in the deduction is a unit (input) resolution. I t is proved in the paper
t h a t a set S of clauses containing its unit factors has a unit proof if and only if S has an input
proof. A L I S P program implementing unit resolution is described and results of experiments
a r e given.
KEY WORDS AND PHRASES: theorem proving, chain of reasoning, resolution, deduction, unit
(input) proofs, s u b s u m p t i o n tests, f u n c t i o n - d e p t h tests
CR CATEGORIES: 3.6, 5.21
1. Introduction
There are many theorems which can be proved by a chain of reasoning. That is, for
many theorems we can start with a statement, apply an inference rule to this statemerit to transform it into another statement, and apply repeatedly an inference rule
to the immediate statement we just obtained until we obtain a statement which is
the conclusion of the theorem. This chain of reasoning is called line-by-line reasoning
by Quinlan and H u n t [12]. Usually, theorems with the line-by-line property are
easier to prove than those without this property. The purpose of this paper is to
study this line-by-line property in resolution-type theorem proving systems.
As we know [10, 12], theorems can be represented in many ways. In this paper the
discussion is restricted to theorems which can be represented by sets of clauses [2,
9, 10]. We use resolution [9] as our only inference rule to derive the empty clause []
from the given set S of clauses. In this case, a line-by-line proof is a deduction tree
as shown in Figure 1, where each resolvent is resolved only with an original input
clause, i.e. a member of S. Because at least one input clause is used in each resolution, we call this kind of a line-by-line proof an input proof. A resolution in which
one of the two parent clauses is a unit clause is called a unit resolution. A unit proof
is a deduction of [] such that every resolution in the deduction is a unit resolution.
As it turns out in the sequel the input proof is closely related to the unit proof. It is
proved in this paper that a set of clauses containing its unit factors I has an input proof
if and only if it has a unit proof.
Since unit resolution is easier to program for computers than input resolution, we
have only implemented unit resolution. As is well known, not all theorems have in* Division of C o m p u t e r Research and Technology
Let a s u b s t i t u t i o n a unify two or more literals t h a t have the same sign in a single clause C.
T h e n Ca is called a factor of C. Ca is a unit factor of C if Co- is a unit clause.
Journal of the Association
for Computing Machinery, Vol. 17, No. 4, October 1970, pp. 998-707.
The Unit Proof and the Input Proof in Theorem Proving
699
C
C~,...,
Cr ~ $
FiG. 1. An input proof
put proofs. However, if a theorem has an input proof it can also be proved b y our
unit resolution program.
2. Input and Unit Proofs
In theorem proving, given a set S of clauses, we want to find a proof for S. Since S is
the original input set, we shall call each m e m b e r of S an input clause.
B y a resolution we shall mean a resolution of only two clauses. I n this paper a factor of a resolvent will be considered a resolvent.
An input resolution is a resolution in which one of the two parent clauses is an input clause. An input deduction (to emphasize the input set S we sometimes shall
say S-input deduction) is a deduction in which every resolution is an input resolution. An input proof is an input deduction of [].
Similarly, we define unit resolution and unit deduction as follows. A unit resolution is a resolution in which one of the two parent clauses is a unit clause. A unit
deduction is a deduction in which every resolution is a unit resolution. A unit proof
is a unit deduction of D.
We prove our theorems as follows.
THEOREM 1. A set S of ground clauses has a unit proof if and only if S has an input
proof.
PROOF. e T h e o r e m 1 is proved b y induction. Let P be the set of atoms of S. I f P
consists of a single element, say Q, then among the elements of S there exist the unit
clauses {Q} and {~Q}. Clearly, the resolvent of {Q} and {~-~Q} is the e m p t y clause
O. This deduction is both a unit deduction and an input deduction of [~. Hence,
Theorem 1 holds for this case. Assume T h e o r e m 1 holds when P consists of i elements,
1 < i < n. To complete the induction we consider P such that P consists of exactly
n -I- 1 elements.
(~)
If S has a unit proof, then S must contain at least one unit clause, say {L},
We note that the theorem can also be proved by using semantic trees [11].
Journal of the Association for Computing Machinery, Vol. 17, No. 4, October 1970
700
c . L . CHANG
where there exists an element A in P such that L is either A or ~-~A. Let S' be that
set obtained from S b y deleting those clauses containing the literal L and by deleting
~ L from Vhe remaining clauses. Clearly, since S has a unit proof S p must have a unit
proof. But S' contains n or fewer than n atoms; hence by the induction hypothesis
there is an S'-input deduction ID r of [] from S r. To each initial node of ID', let the
clause already there be C'. If C p is a member of S, let C = C'. If C' is different from
a member of S b y the literal ~ L , let C = C' V ~-.~L. Replace Cr by C at this initial
node. Then for each noninitial node of ID', if clauses have been attached in this way
to each of its immediate predecessor nodes, attach to it the resolvent of the clauses
at its immediate predecessor nodes. Let T be the clause attached to the terminal
node of ID'. Let ID be the tree together with the attached clauses. Clearly ID is an
S-input deduction of T from S. I t is easy to see that T must be either [] or {~L}.
If T = [], we are done. If T = { ~ L } , then we can obtain [] by resolving T with the
clause {L} which is a member of S. Thus the deduction of [] obtained from the deduction I D of T and the resolution of T and {L} is an S-input deduction of [] from
S, i.e. S has an input proof. Therefore, we have completed the proof of the first half
of Theorem 1.
(~)
Conversely, if S has an input proof, then S must contain at least one unit
clause, say {L}, where there exists an element A in P such that L is either A or HA.
Let
S' = {S U [Res (C, {L}) [ C C S]} -
{all clauses which contain L or ~-~L},
where Res (C, {L}) is the resolvent of the clause C and the clause {L}. Since there
is an S-input deduction of [] from S, it is easy to see that there must be an S'-input
deduction of [] from S'. But S' contains n or fewer than n atoms, hence by the induction hypothesis there is a unit deduction of [] from S'. But every clause in S' is
either a member of S or a resolvent obtained by applying unit resolution on the
clause {L} and a clause in S, hence there is a unit deduction of [] from S; i.e. S has
a unit proof. This completes the proof of the second half of Theorem 1.
Theorem 1 is for the ground case. We now consider the following theorem for the
general (latent) case.
THEOREm 2. A set S of clauses containing its unit factors has a unit proof if and
only if S has an input proof.
PrtOOF. ( ~ ) If S has a unit proof, i.e. if there is a unit deduction D1 of [] from
S, then from this deduction tree Di we can replace the clause C attached to each node
of D1 b y an appropriate ground instance of C such that the tree together with the attached ground clauses is also a unit deduction of []. Let D / b e this tree together
with these attached ground clauses, and let S ~ be the set of ground clauses attached
to the initial nodes of D~.~ B y Theorem 1, there is an input deduction D~' of [] from
S'. From this deduction D2', we can produce an input deduction of [] from S. This
is done as follows: For each initial node N of D..', if C' is the ground clause attached
to N, restore C r to the original clause of S. For each noninitial node, if clauses have
been attached in this way to each of its immediate predecessor nodes, attach to it
the resolvent of the clauses at its immediate predecessor nodes. Clearly, the clause
attached to the terminal node must be [], since the clause already there is [] and
since instantiation cannot produce [] from a nonempty clause. Let D2 be the tree
together with the attached clauses. D2 is an input deduction of [] from S. Therefore,
S has an input proof.
Journal of the Association for Computing Machinery, Vol. 17, No. 4, October 1970
The Unit Proof and the Input Proof in Theorem Proving
701
( ~ ) The proof of the second half of Theorem 2 is the same as the above proof
except the words "unit" and "input" are interchanged and ground unit clauses are
replaced by their corresponding unit clauses.
3. Experiments With Unit Resolution
Given a set S of clauses, if S has an input proof then we can use input resolution to
obtain a proof for S. However, by Theorem 2 of Section 2, S can also be proved by
applying unit resolution. Since unit resolution is easier to program for computers
than input resolution, we have implemented only unit resolution. Our program is
called TPU, which stands for Theorem Prover with Unit-resolution. TPU is written
in the LIsP language. To call T P U to prove a given set S of clauses, we need only
give a statement:
TPU (S1, $2, $3, W, N1, N2, N3, N4),
where
the set of all the positive unit clauses in S;
$2 = the set of all the negative unit clauses in S;
Sa ---- the set of all the nonunit clauses in S; $3 is ordered according to the length
of the clause: 2-literal clauses are first, 3-literal clauses second, etc.;
W = the family of sets of support for all the clauses in $3. The set of support for
each clause in $3 is a set of unit clauses in S. They may or may not be different for different clauses in S~ ;
N1 = total number of clauses in S;
N~ = maximum number of times clauses in Sa will be selected;
N3 = maximum number of times clauses in $3 will be selected before the function
depth test will be given for unit clauses;
N4 = maximum function depth which a unit clause may have.
The procedure of TPU is given in the flowchart as shown in Figure 2. TPU first
resolves the clauses in $1 and the clauses in $2 to test for an immediate contradiction.
If no contradiction is found, the clauses in $8 are selected one at a time. At the kth
step, suppose the clause selected is Ck. TPU tries to generate unit clauses from
Ck, $1, and $2 with the set Wc~ of support for C~. If no unit clauses are generated,
TPU chooses another clause in S~ and repeats the process. If some unit clauses are
generated, TPU applies the subsumption test a and if applicable the function-depth
test. 4 TPU retains only those which pass these tests. TPU resolves these newly
generated unit clauses against the clauses in $i and $2. If a contradiction is found,
it stops; otherwise it picks another clause in $3 and repeats the process. At each step
of the procedure, the selection of the clause from $3 may be crucial to the efficiency
of the program. In TPU the clauses in $3 are selected in sequence. When $3 is exhausted the clauses are selected again in the same order. The set-of-support strategy
is also incorporated into the program. In the program each clause in $3 has its own
S1 =-
8 A c l a u s e C is s u b s u m e d b y a c l a u s e D if D~ c C for s o m e s u b s t i t u t i o n #. F o r e x a m p l e , {E = E}
is s u b s u m e d b y {x = x}. B y t h e s u b s u m p t i o n t e s t , we m e a n t h a t a g e n e r a t e d u n i t c l a u s e is n o t
r e t a i n e d if it is s u b s u m e d b y s o m e u n i t c l a u s e .
4 B y t h e f u n c t i o n - d e p t h t e s t , we m e a n t h a t a g e n e r a t e d u n i t c l a u s e is n o t r e t a i n e d if it c o n t a i n s
a n a r g u m e n t i n v o l v i n g n e s t i n g of f u n c t i o n s to a d e p t h g r e a t e r t h a n N 4 . F o r e x a m p l e , t h e f u n c t i o n d e p t h of C = {P(a, f ( g ( h ( a , b))))} is 3. C will n o t b e r e t a i n e d if N4 = 2.
Journal of the Association for Computing Machinery. Vol. 17, No. 4, October 1970
702
C. L. CHANG
I
',
Resolve($1, S2)*
I
top
L
(S is proved} I
TM
Stop
IS is not
p r o~ ev e d ) ~ b - ~
r
k=k+l
IL
~No
I ' Picka clauseCk
l
in S3
l
Let the set of support
for the clause Ck be
Generate unit clausesfrom
(S1' U $2')
Ck, S1 and S2 with the set
Wck of support for Ck
•
•
(,
~--I~
No
Append (S1' U $2") to ]
the set of support for |
every clause in S3
|
exceptclauseC k
I s,:s, os; I
s2=$2osj
j
I
~No
Function Depth Test ~
Subsumption Test
)
Resolve ($1, S~) 1
and
Resolve (S~,S2) /
f
the tests
7
Let S~I and S~ bethe 1
respective setsof positive
and negative unit clauses
which passthe tests
* Resolve (31 , 32)means that it resolves clauses in Sl against clauses in $2.
FiG. 2. The flowchart of TPU
set of support. Different clauses may have different sets of support. They are updated at every step.
The parameter N~ is used to tell the program when the function depth test will
be applied. If we want to use the function depth test throughout the entire proof,
we can set N~ = 0. On the other hand, if we do not need this test, we can set N3 = N2.
And, of course, N3 can be set to be any integer between 0 and N2.
In addition, T P U uses the following scheme to avoid repeated]y generating the
same unit clause. For example, given the clauses
(1,0)
P,
(2,0)
Q,
Journal of the Association for Coranutin~ Maehinerv. Vol. 17. No, 4. October 1970
The Unit Proof and the Input Proof in Theorem Proving
703
(3,0) ~ P V ~-~Q v R,
TPU will generate the following sequence of clauses:
(4, 1) ~-~Q Y R
from (3, 0) and (1, 0),
(5, 2) ~ P V R
from (3,0) and (2,0),
(6,2) R
from ( 4 , 1 ) a n d (2,0).
Here, the label for each clause is a pair of integers of which the first indicates the
name for that clause and the second indicates the origin of that clause. For example,
(1, 0) means that the clause is no. 1 clause and is an original clause, while (4, 1)
means that the clause is no. 4 clause and is obtained by using clause no. 1. In TPU,
to resolve a nonunit clause (ml, nl) against a unit clause (m2, n2), nl must not be
greater than m2. Thus, in the above example, we can resolve (4, 1) against (2, 0)
to obtain (6, 2). However, we are not allowed to resolve (5, 2) against (1, 0) because 2 is greater than 1.
T P U has produced proofs for many examples on the PDP-10 time-sharing system. Among them are the examples listed below.
Example 1. In an associative system with left and right solutions, there is a
right identity element.
Example 2. In an associative system with an identity element, if the square of
every element is the identity, the system is commutative.
Example 3. In a group the left identity element is also a right identity.
Example 4. In a group with left inverses and left identity every element has a
right inverse.
Example 5. If S is a nonempty subset of a group such that if x, y belong to S
then x. y-~ belongs to S, then the identity e belongs to S.
Example 6. If S is a nonempty subset of a group such that if x, y belong to S
then x. y-1 belongs to S, then S contains x-1 whenever it contains x.
Example 7. If a is a prime and a = b2/c~, then a divides b.
Example 8. Any number greater than 1 has a prime divisor.
Example 9. There exist infinitely m a n y primes.
Example 10. Given the rewriting rules
(1) A + B : = B + A ,
(2) A + ( R + C ) : =
(A+B)+C,
(3) (A + B ) - B : - - A,
(4) A : = ( A + B) -- B,
(5) (A -- B) + C := (A --F C) - B,
(6) (A + B) - C : = (A -- C) + B ,
show that
(a) (A + B ) + C : = A + ( B + C ) ,
(b)
(A--B)+C:=A+
(C--B),
(e) A--F ( B - - C) := (A - C ) - - F B ,
(d) (A --k B) - C := A -t- (B -- C).
These are examples formulated and tested by several authors [5, 12, 14-16].
Their clausal representations are given in the Appendix. Our results are summarized
in Table I.
4.
Concluding Remarks
First, input resolution is essentially the axiom resolution of Lee [3] if every input
clause is considered as an axiom. It is also imbedded in resolution with merging
Journal of the Association for C o m p u t i n g Machinery, Vol. 17, No. 4, October 1970
704
c . L . CHANG
TABLE I. EXPERIMENTALRESULTS
Example
No. clauses
generated
No. clauses
retained
No. resolutions iu
proof
Level of proof
Time to obtain proof,
sec
1
2
3
4
5
6
7
8
9
10(a)
10(b)
10(c)
10(d)
16
109
44
32
21
32
58
65
34
136
59
53
48
0
3
3
2
0
1
5
11
10
17
6
4
5
4
10
10
7
4
7
6
12
10
11
7
7
7
4
10
10
7
4
7
6
6
6
11
7
7
7
1.550
7.510
3.417
2.650
0.667
2.300
3.566
5.184
4.050
24.550
9.367
6.916
7.317
[1], resolution which has a linear format [4], and resolution which has an ancestry
filter format [6]. On the other hand, unit resolution is essentially a generalization of
the "one-literal" rule of Davis and P u t n a m [2]. I t was intensively used b y Wos et al.
[14-16]. Slagle [8] also considered a general version of unit resolution. I n this paper
we have connected together these two seemingly different resolutions--input and
unit resolutions.
Second, from the experience with our T P U program, we believe that either a
unit or an input resolution program should be considered a basic program in resolution-type theorem proving. I f a theorem, i.e. a set of clauses, does not have an input
or unit proof, we m a y convert it into a theorem which has an input or unit proof by
putting into it appropriate lemmas. Thus, a theorem proving program m a y consist
of two parts. One p a r t is the basic program, which m a y be either input or unit
resolution. The other is a program which selects good lemmas for a theorem. The
first part has been implemented very well b y our T P U program and various other
programs [14-16]. The second part is much more difficult. A variety of strategies
[1-10, 14-16] m a y be used for selecting good lemmas. For example, we m a y consider t h a t a good l e m m a is a merge [1], or a resolvent which has a linear format [4],
or a resolvent derived b y using semantic resolution [8], etc. But., unfortunately, most
of these strategies generate m a n y irrelevant and redundant clauses as well. So, much
work still needs to be done for this second part.
Finally, the results of the experiments with T P U are highly encouraging. F o r the
examples tested, the total n u m b e r of clauses generated and retained by TPU
during the course of a proof is far less than those generated and retained by the
programs of Wos et al. [14-16] and L u e k h a m [5].
Appendix
Example 1. In an associative system with left and right solutions, there is a
right identity element.
1.
2.
3.
4.
P(g(x y) x y),
P(x h(x y) y),
~ P ( x y u ) V ~-.~P(yzv) V ~-~P(xvw) Y P ( u z w ) ,
~P(k(x)xk(x)).
Journal of the Association for Computing Machinery, Vol. 17, No. 4, October 1970
The Unit Proof and the Input Proof in Theorem Proving
705
Example 2. In an associative system with an identity element, if the square of
every element is the identity, the system is commutative.
1. P(xex),
2. P ( e x x ) ,
3. ~.~P(xyu) Y ~-.~P(yzv) Y ~ P ( u z w ) Y P ( x v w ) ,
4. ~ P ( x y u ) V ,~P(yzv) Y ~ P ( x v w ) V P ( u z w ) ,
5. P(xxe),
6. P(abc),
7. ,-.~P(b a e).
Example 3. In a group the left identity element is also a right identity.
1. P ( I ( x ) x e ) ,
2. P ( e x x ) ,
3. ~ P ( x y u ) V ~-.~P(yzv) ¥ ~ P ( u z w ) Y P(xvw),
4. ~ P ( x y u ) V ~-~P(yzv) V ~.~P(xvw) Y P ( u z w ) ,
5. ~ P ( a e a ) .
Example 4. I n a group with left inverses and left identity every element has a
right inverse.
1. P ( I ( x ) x e ) ,
2. P(exx),
3. ~ P ( x y u ) V ~ P ( y z v ) V ~ P ( u z w ) Y P(xvw),
4. , ~ P ( x y u ) V ~ P ( y z v ) Y ~-.~P(xvw) ¥ P ( u z w ) ,
5. ~ P ( a x e ) .
Example 5. I f S is a n o n e m p t y subset of a group such that if x, y belont to S,
then x-y-1 belongs to S, then the identity e belongs to S.
1. P ( e x x ) ,
2. P ( x e x ) ,
3. P ( x I ( x ) e ) ,
4. P ( I ( x ) x e ) ,
5. S(a),
6. ~.~S(x) Y ~ S ( y ) Y ~ P ( x I ( y ) z ) Y S(z),
7. ~-.~P(xyu) ¥ ~ P ( y z v ) V ~ P ( x v w ) V P ( u z w ) ,
8. ~ P ( x y u ) Y ~ P ( y z v ) Y ~-.~P(uzw) V P(xvw),
9. ,-,~S (e ).
Example 6. If S is a n o n e m p t y subset of a group such that if x, y belong to S
then x. y-1 belongs to S, then S contains x -I whenever it contains x.
1. P ( e x x ) ,
2. P ( x e x ) ,
3. P ( x I ( x ) e ) ,
4. P ( I ( x ) x e ) ,
5. S(b),
6. ~ S ( x ) Y ~ S ( y ) Y ~ P ( x I ( y ) z ) V S(z),
7. ~ P ( x y u ) Y ~.~P(yzv) Y -.~P(xvw) Y P ( u z w ) ,
8. ~ P ( x y u ) Y ~.~P(yzv) V ~ P ( u z w ) V P(xvw),
9. ,-.~S(I(b)).
Example 7. I f a is a prime and a = b2/c2 then a divides b.
1. P(a),
2. M(as(c)s(b)),
3. M ( x x s ( x ) ) ,
Journal of the Association for C o m p u t i n g Machinery, Vo|. 17, No. 4, October 1970
706
c.L. CHANa
4. ~ M ( x y z ) Y M ( y x z ) ,
5. ~--~M(xyz) V D(xz),
6. ~ P ( x ) V ~ M ( y z u ) Y ~-~D(xu) Y D(xy) Y D(xz),
7. -.~D(a b).
Example 8. Any number greater than 1 has a prime divisor.
1. D(xx),
2. ~ D ( x y ) Y ~-.~D(yz) Y D(xz),
3. P(x) V D(g(x)x),
4. P(x) Y L ( l g ( x ) ) ,
5. P(x) V n(g(x)x),
6. L(1 a),
7. ~ P ( x ) Y ~ D ( x a ) ,
8. ~ L ( l x ) Y -,,L(xa) V P(f(x)),
9. ~ L ( l z ) V ~ L ( x a ) V D ( f ( x ) x ) .
Example 9. There exist infinitely many primes.
1. L ( x f ( x ) ),
2. ~ L ( x x ) ,
3. ~ L ( x y ) V ~.~L(yx),
4. --~D(xf(y)) Y L(yx),
5. P(x) V D(h(x) x),
6. P(x) V P(h(x)),
7. P(x) V L(h(x)x),
8. ,-~P(x) Y ~ L ( a x ) V L(f(a)x).
Example 10. Axioms:
1. R ( W ( x y ) + ( y x ) ) ,
2. R(W(x + (yz)) W(--t- (xy) z)),
3. R(--(-~-(xy)y)x),
4. R ( x - ( W ( x y ) y ) ) ,
5. R ( - - ~ - ( - - ( x y ) z ) - ( W ( x z ) y ) ) ,
6. R ( - - ( W ( x y ) z ) + ( - - ( x z ) y ) ) ,
7. ,'~R(xy) V ,~R(yz) V R ( x z ) ,
8. R(xx),
9. ,~R(xy) Y ,-~R(u+(zv)) V R ( u W ( y v ) ) ,
10. ,~R(xy) V ,--~R(u - (xv)) Y R(u - (yv)),
11. ,~-~R(xy) Y r,~R(u - (vx)) Y R(u - (vy)).
Negation of conclusion:
(a) 12. , ~ R ( W ( + ( A B ) C ) + ( A - t - ( B C ) ) ) ,
(b) 12. , ~ R ( W ( - - ( A B ) C ) W ( A - ( C B ) ) ) ,
(c) 12. ~ R ( W ( A - - ( B C ) ) W ( - ( A C ) B ) ) ,
(d) 12. ,-,~R(-- ( + ( A B ) C ) + ( A - (BC))).
REFERENCES
1. ANDREWS,P . B . Resolution with merging. J . A C M 15, 3 (July 1968), 367-381.
2. D.&vIs, M., AND PUTNAM, H. A computing procedure for quantification theory. J. ACM
7, 3 (July 1960), 201-215.
3. LEE, C . T . A completeness theorem and a computer program for finding theorems derivable from given axioms. Ph.D. diss., Dep. of Elec. Eng. and Computer Sci., U. of Calif.,
Berkeley, 1967.
Journal of the Association for Computing Machinery, Vol. 17, No. 4, October 1970
The Unit Proof and the Input ProoJ' in Theorem Proving
707
4.
LOVELAND,D . W . A linear format for resolution. Carnegie-Mellon U., Pittsburgh, Pa.,
Dec. 1968.
5. LUCKHA.M,D. Some tree-paring strategies for theorem-proving. In Machine Intelligence,
Vol. 3 (Dale, E., and Michie, D., eds.), Oliver & Boyd, Edinburgh, 1968, pp. 95-112.
6. - - . .
Refinement theorems in resolution theory. A-I Menlo 81, Stanford Artificial Intelligence Project, Stanford U., Stanford, Calif., March 24, 1969.
7. MELTZER,B. Theorem proving for computers: Some results on resolution and renaming.
Computer J. 8 (1966), 341-343.
8. SL~GL~, J . R . Automatic theorem proving with renamable and semantic resolution. J.
ACM 15, 4 (Oct. 1967), 687-697.
9. ROBINSON,J. A. A machine-oriented logic based on the resolution principle. J. ACM
12, 1 (Jan. 1965), 23-41.
10..
A review of automatic theorem proving. Proe. Symp. in Appl. M a t h , Amer. Math.
Soc., Providence, R. I., 1967.
11.
The generalized resolution principle. In Machine Intelligence, Vol. 3 (Dale, E., and
Michie, D., eds.), Oliver & Boyd, Edinburgh, 1968, pp. 77-94.
12. QUINLAN,J. R., ~ND HUNT, E . B . A formal deductive problem-solving system. J. ACM
15, 4 (Oct. 1968), 625--646.
13..
An experience-gathering problem-solving system. Teeh. Rep. 68-1-03, Computer
Sci. Group, U. of Washington, Seattle, Wash., May 16, 1968.
14. Wos, L., CARSON, D. F., XND ROmNSON, G.A. The unit preference strategy in theorem
proving. Proc. AFIPS 1964 Fall Joint Comput. Conf., Vol. 26, Pt. 1, pp. 615-621 (Spartan
Books, Washington, D. C.).
15.
, ROBINSON, G. A., AND CARSON, D . F . Efficiency and completeness of the set of si~p:port strategy in theorem proving. J. ACM 12, 4 (Oct. 1965), 536-541.
16.
,
, XND SHALLA, L. The concept of demodulation in theorem proving:
J. A'CM 15, 4 (Oct. 1967), 698-709.
RECEIVED AUGUST, 1969; REVISED FEBRUARY, 1970
Journal of the Associationfor ComputingMachinery,Vol. 17, No. 4, October 1970