Discrete Structures, Logic And Computability by James Hein