  Mechanical reasoning is a key area of research that lies at the crossroads of
mathematical logic and artificial intelligence. The main aim to develop
mechanical reasoning systems (also known as theorem provers) was to enable
mathematicians to prove theorems by computer programs. However, these tools
evolved with time and now play vital role in the modeling and reasoning about
complex and large-scale systems, especially safety-critical systems.
Technically, mathematical formalisms and automated reasoning based-approaches
are employed to perform inferences and to generate proofs in theorem provers.
In literature, there is a shortage of comprehensive documents that can provide
proper guidance about the preferences of theorem provers with respect to their
designs, performances, logical frameworks, strengths, differences and their
application areas. In this work, more than 40 theorem provers are studied in
detail and compared to present a comprehensive analysis and evaluation of these
tools. Theorem provers are investigated based on various parameters, which
includes: implementation architecture, logic and calculus used, library
support, level of automation, programming paradigm, programming language,
differences and application areas.
