First Order Logic Theorem Prover