How to Prove It

Daniel J. Velleman · August 2026

Writing this (and someday putting it up somewhere for somebody else to read) is admitting something I’d rather not admit: I like reading about math somtimes. I’m afraid that the people who don’t like reading math will laugh at me for entertaining myself in this way. I’m afraid that the people who do will judge my intelligence by what I’ve read. Yet I committed myself in May to write reviews for all the books I read cover to cover, including this one, “How to Prove It.”

I finished reading it while driving through the Muir woods with my brothers. I challenge you to name a more beautiful trio: Nature, math, written word, and family.

I never knew “proof” until I took CS70 at UC Berkeley, which is a discrete math and probability course for computer science students. “How to Prove It” would have been a good book to read before taking CS70. The class was brutal because I had no experience with the discrete flavor of mathematics. It felt at times that I had to re-learn how to think. Writing a proof is formalizing your intuition, poking holes in what you believe to be true, or justifying things which appear at first glance to be false. I came to the conclusion that doing this is to tap your foot; to write and erase and re-write; to read and re-read; to perhaps go on a walk and think for a (long?) while; until you’ve come up with something that “checks out.” Whatever that means….

This is an excellent book; it provides a structured approach so as to demystify proof writing. Some of the schemas I’ve developed naturally (over uncountably many indescribably frustrating problem sets) were formally justified. Such a from-first-principles introduction to these schemas would have laid a more-sound foundation for my proof writing skills. Reading it today has nontheless given greater depth to my understanding (better late than never, they say).

“How to Prove It” also introduces some basic set theory that I had not yet had the opportunity to learn elsewhere. The description of functions as relations between sets, in particular, is neat.

The final chapter is a shorter set of proofs about the size of infinite sets. With less hand holding, I found myself re-reading much more often than I had in the earlier chapters. This is a cherry on top, a neat application of prior concepts. It happens that countability was my favorite (and much-too-briefly covered) topic in CS70, so the conclusion is undoubtedly my favorite part.

I didn’t have the desire to do many problems, but those I did choose to do were fun. Even though math is something you must engage with actively, I still got a lot out of this book because of the experience I’ve had reading and writing math elsewhere. If this is your introduction to writing proof, I’d definitely recomend picking a problem or two at the end of each section to play with.

If you’re one to read math, I’d recomend “How to Prove It.” Otherwise, I probably would not. However, since it builds concepts from the ground up and provides plentiful practice problems, it would be accessible should you choose to venture out of your comfort zone.

Tiptoe shoeless upon a bed of nails, Avoiding those rusted tips rather than (Pain blooms inside the warm wet place) Yielding to shapes in clouds, crayon dragons.

Journey toward total darkness, pointless But for one shining star, the vanquished: (At war with your mind, parasites thrive in) Fear.

With love,

-Ryan.

All reviews