As an unsuspecting undergraduate, I went into my first advanced mathematics class (in abstract algebra) not really knowing what to expect. Therefore, I always view myself among those who have been baptized by fire; in other words I had to learn to write proofs at the same time I was learning basic concepts of groups and homomorphisms and so on. Now that I am to teach students a basic course that is mainly intended to teach them the language of mathematics and the techniques of proofs, I find myself at a weird position. Almost analogous to the fact that I do not have any recollection of the time I learned how to read (and I was no prodigy, it seems to have more to do with my general lack of self-awareness), I honestly do not know how I learned to write proofs; somehow it just happened on the way along with the struggles (and joys mostly) of basic group theory. A good proof has some quantifiable qualities, but for me, there is still the heavy reliance on the gut feeling of "Yes, now it sounds right!"

Therefore I was very interested in Antonella Cupillari's *Nuts and Bolts of Proofs*, the third edition of a textbook intended mainly for courses in which students are exposed to proofs and the abstraction of mathematics for the first time. As can be understood from the title, the book emphasizes various techniques and approaches proofs from a structural point of view. The first principle is to write mathematical statements in the form of a conditional, we are told, and if this is doable, then there are several ways to attack the problem of finding an acceptable proof. Direct proofs are to be preferred in general but if not, there are methods like proof by contradiction and one can always try to attack the contrapositive. Later on, mathematical induction and counterexamples are introduced as more and more different types of statements are considered. Separate sections discuss particular types of theorems: "if and only if" theorems, equivalence ("the following are equivalent") theorems, existence theorems, uniqueness theorems. There are special sections for statements involving equality of sets and equality of numbers, and a whole section deals with calculus proofs related to limits. Throughout, there are many, many solved examples, and none of the statements proved require more than a basic knowledge of calculus and some elementary facts about numbers and functions.

Compared with books intended for similar audiences, Cupillari's book de-emphasizes basic logic. Even though truth tables and contrapositives and other basics of elementary logic are used when necessary, Cupillari makes no attempt at making her book comprehensive in this respect. However, the strength of the book comes from its many examples, solved and unsolved. There are about 250 solved examples, and 85 more for the students to try on their own. There are straightforward and traditional exercises as well as exercises where the student is expected to read a passage alleged to prove a statement and argue whether or not it constitutes a proof.

The tone of the author is informal throughout and the style feels very much like that of the lecture notes of a friendly and experienced instructor. There are quite a few typos, which gives the text a tentative air. However, the abundance of good examples and great explanations ends up making this a good reference for students who are trying to learn the Nuts and Bolts of Proofs. The book would make a very good companion in a course on basic proof techniques (perhaps fortified with another text which has a more thorough exposition of basic logic). For students who find themselves going through the baptism-by-fire path as I did, this text will also prove to be a useful guide on the side. Since it assumes no particular experience in any of the more advanced topics (like linear or abstract algebra, or analysis), students with various mathematical backgrounds will find the *Nuts and Bolts* very accessible and helpful in learning about the structure of mathematical proofs. I, on the other hand, am still not sure how one teaches that gut feeling...

Gizem Karaali teaches at the University of California in Santa Barbara.