Mathematical Logic for Computer Science (Second edition)