At the heart of the justification for the reasoning used in modern mathematics lies the completeness theorem for predicate calculus. This unique textbook covers two entirely different ways of looking at such reasoning. Topics include: - the representation of mathematical statements by formulas in a formal language; - the interpretation of formulas as true or false in a mathematical structure; - logical consequence of one formula from others; - the soundness and completeness theorems connecting logical consequence and formal proof; - the axiomatization of some mathematical theories using a formal language; - the compactness theorem and an introduction to model theory. This book is designed for self-study, as well as for taught courses, using principles successfully developed by the Open University and used across the world. It includes exercises embedded within the text with full solutions to many of these. Some experience of axiom-based mathematics is required but no previous experience of logic.