Formal Methods and Theorem Provers