Proving ( or disproving) mathematical theorems are an intensive intellectual task. This is because it requires deductions from hypotheses and also involves judgment. This judgment is based on a large amount of specialized knowledge and to guess accurately as to which previously proven theorem would help in the present proof. This helps to break the main problems into sub problems to work on independently. Several automatic theorem proving programs have been developed which posses this ability to a limited extent. The formalization of deductive techniques using the language of predicate logic helps in understanding the components of reasoning more clearly. Many informal tasks like medical diagnosis can be formalized to theorem proving problems.