Symbolic Logic and Mechanical Theorem Proving