Many mathematics students have trouble the first time they take a course, such as linear algebra, abstract algebra, introductory analysis, or discrete mathematics, in which they are asked to prove various theorems. This textbook will prepare students to make the transition from solving problems to proving theorems by teaching them the techniques needed to read and write proofs. The book begins with the basic concepts of logic and set theory, to familiarize students with the language of mathematics and how it is interpreted. These concepts are used as the basis for a step-by-step breakdown of the most important techniques used in constructing proofs. The author shows how complex proofs are built up from these smaller steps, using detailed "scratchwork" sections to expose the machinery of proofs about the natural numbers, relations, functions, and infinite sets. Numerous exercises give students the opportunity to construct their own proofs. No background beyond standard high school mathematics is assumed. This book will be useful to anyone interested in logic and proofs: computer scientists, philosophers, linguists, and of course mathematicians.