Professional Documents
Culture Documents
Atpmachine
Atpmachine
Introduction
In this project we try to implement an automated theorem
proving system (a.k.a. ATP machine). The field of ATP is
derived from automatic reasoning and mathematical logic
and a usual ATP system is supposed to deal with the development of computer programs which proves that some
statement is a logical consequence of a set of statements.
These systems have great significance since they are able to
solve extremely difficult problems in reasonable amount of
time.
Our approach is designing an ATP machine by using resolution technique which uses the proof by contradiction method. It basically applies resolution rules iteratively until the
propositional formula is determined as satisfiable or not.
Our system is able to get the propositional formula and convert it to clauses by using resolution rules which are
I(implications out), N(negations in), D(Distribute OR over
AND) and O(Operators out). And the resolving process
which is reaching the empty set from the clauses found
above is also ready. The results and comments will be stated
in the following chapters.
Related Work
As a starting point, we analyzed the implementation of Boyers
theorem prover, source code of this project can be found in
github. At the beginning of the project we have downloaded the
Boyers theorem prover, and run it to understand the basic steps
of the execution.
During our analysis, we noticed that Boyer has defined a unification and resolution algorithm using sequents to prove/disprove
the theorems. The difference between Boyers approach and ours
is that we prefer to use Resolution method with clauses in this
project.
Boyers project gets the input, parses it to identify formulas, variables, axioms, etc. and directly give them to the prove/disprove
process by using sequents. In contrast, we get the input, parse it,
preprocess the input to get clauses from input, and finally
prove/disprove.
Algorithm Definition
Basically the following steps are applied respectively. After each step we will show the example.
First we get the goal formula as input, parse the formula into a list form and negate it. By doing so it
will be ready to go into the resolution algorithm. By
doing this we can show that the negated goal is unsatisfiable or not.
goal:
negated goal:
After negating the goal we now apply the "Implications out" procedure.
Results
Then apply the "Negations in" procedure.
Experimental Evaluation
Methodology
In proving part, our approach to select the pairs of clauses
to be resolved is that just checking the first clause with
remaining clauses then checking second clause with the
other clauses until to the end of the clause list.
After completing the algorithm, we make experiments
by running lots of examples on our system. The performance of ATP Machine is quite well, it reaches a conclusion in very little time and outputs are shown on the screen.
Also it is clear that our system proves every provable input
Discussions
The advantage of our approach is that performing the resolution techniques to propositional logic formulas ends up
successfully. This is valid for not only simple clauses but
also complex ones. It does not matter whether the formula
is provable or not. In our system it always creates the
clauses successfully and also proves or disproves the formulas with high accuracy (if there were no iteration limit it
would prove or disprove with 100% accuracy. The disadvantage of iteration limit is discussed in the last paragraph
of this subsection.)
The main disadvantage of our method is in the selecting
pair of clauses to be resolved. In this part, even if there is
no pair of literals in the clauses to be resolved, we are
checking the clauses. This increases the time complexity,
in other words, steps of resolving process are subject to
increase.
Additionally, since there is certain iteration limit, there
is small possibility that the true statement could not be
proved. However, this is a common problem of the automated theorem proving systems that have to face with.
Conclusion
In this project, we implemented resolution approach to
prove/disprove the propositional formulas. For the first
stage of the algorithm, we negate the goal and apply INDO
methods to the negated goal formula and get the clausal
form. After that, we employed the resolving process to
reach a conclusion. In the end, we reach an empty set if the
given formula is provable. On the contrary, if the formula
is not provable, then either we reach an iteration limit or
cannot reach the empty set within the iteration limit.
Future Work
We completed the proof of propositional logic formulas by
using the resolution refutation technique. As a feature
work, this approach can be extended for the First Order
Logic formulas. In order to accomplish that, the unification
algorithm, S (Standardizing variables) and E (Existential
out) procedures should be implemented.
References
R. S. Boyer & J. S. Moore: The sharing of structure in theoremproving programs, in Machine Intelligence 7, D. Mitichie, editor,
Elsevier (1972), pp. 101-116.
https://github.com/boyers/theorem_prover