What is Automated Theorem Proving?

Automated Theorem Proving (ATP) deals with the development of computer programs that show that some statement (the conjecture) is a logical consequence of a set of statements (the axioms).

Example
A = { All men are mortal,
      Socrates is a man }
C = Socrates is mortal

Here the set of axioms formulae A leads to the conclusion C. The question to ask is "Is that conclusion reasonable, or logical?". The answer normally given is "Yes", for one or both of two reasons. The first reason is that it is known that Socrates is a Greek philosopher who lived about 469-399BCE, and it is known that everyone from that era is now dead. The second reason is that the argument sounds reasonable. The first reason uses the meaning (formally, the semantics) of the formulae to motivate the reasonableness of the conclusion. The second reason is syntactic, i.e., it does not rely on the meaning of the formulae. It is this second reason that is relevant to ATP. In ATP words, it is said that the conclusion Socrates is mortal is a logical consequence of the axioms All men are mortal and Socrates is a man.

The important phrase in the above is "logical consequence", indicating a logical argument form. Logical consequence will be formally defined later, but roughly, logical consequence means that the conclusion is TRUE independent of the meanings of the words used - the conclusion follows inevitably from the axioms. For example, given that A implies B, and you know that A is true, you can logically conclude that B is true, even though A and B have unknown meaning. B is a logical consequence of the set {A implies B, A}. This is acceptable to everyone who knows the meaning of "implies", independent of what A and B mean. A could mean "Being a good student" and B "Will pass exams", or alternatively A could mean "Being extremely tired" and B "Likely to sleep". For either meaning (or any other meaning) B is still TRUE. In fact, the statements don't have to mean anything, and they could mean everything, and B is still TRUE.

ATP is about establishing logical consequence, using a computer. From the point of view of a compter scientist, ATP is the study and development of computer programs that build proofs of theorems. These programs are called ATP systems. The inputs to an ATP system are axioms (including hypotheses) and the theorem statement, and the output is a proof that shows that the theorem statement is a logical consequence of the axioms. Computers have no idea about the meaning of statements in English or any other language we use. As logical consequence is independent of meaning, a computer is quite adequate as a tool for establishing logical consequence.

For an ATP system to be at all useful, it must not be possible for the system to 'prove' non-logical consequences. Every proof found from a set of axioms must be a proof of a logical consequence of those axioms. This property, called soundness is discussed in the context of specific ATP techniques later. As well as being sound, it is desirable that ATP systems be complete. This means that the system is able to find a proof of all logical consequences of a set of axioms. Again, this property is discussed for specific cases later.

The "flip side" of ATP is Model Finding. Model Finding deals with the development of computer programs that show that a set of statements is consistent (non-contradictory). Two particularly useful applications of model finders are in conjunction with ATP. First, in most applications of ATP the axioms should be consistent, and a model finder can be used to check this. Second, if a conjecture is not a logical consequence, a model finder may be able to show this.