Logic for computer science foundations of automatic theorem proving