LOOP Given: a list of identities (with the right hand sides no longer than the left hand sides)
find all the critical pairs (p,q) for the pair of rewrite rules si --> ti and sj --> tj. Otherwise exit the loop. ENDLOOP |
There are only two parameters that one can set in this program, namely the size of the terms that one will permit in new critical pairs, and the number of new identities that one can add to the list.
In a full fledged theorem prover, such as William McCune's Otter, one has a wide range of parameter options. It is in the management of these parameters that the "art" of automated theorem proving is exercised.
Even with this simple program, CPTP, one will quickly see the dramatic effects of changing parameters.
There is one short cut used in the program, namely if one starts with an identity t = x such that x is neither the leftmost nor rightmost variable of t, and if one derives the equation x+y = x or x+y = y then the program immediately announces that one has u = v. This follows from the fact that using x+y = x one can reduce t = x to leftvariable(t) = x; and similarly for x+y = y.