First, some quick background: I'm a recent computer science grad planning on grad school in the near future, probably in artificial intelligence, and since I feel my mathematical foundations are lacking, I've decided to embark on a self-study project to fill in my (substantial) gaps. I mention this to illustrate three things: First, I have enough mathematical maturity to understand what proofs are, how to build them, and their importance from a theoretical standpoint. Second, for me, math is just a tool. Third, time is of the essence.

With this in mind, on to the question. In the course of studying the various texts I plan to study, it seems I have a few options when encountering a theorem with a proof:

  1. Learn the theorem statement and skip the proof entirely.
  2. Study the proof only until I accept it as valid.
  3. Study the proof until I understand it intuitively, and can "see" why it works.
  4. Do option #3, but revisit the proof over time until the intuitive understanding is cemented in memory.

Going down the list, each path grants more understanding but at the cost of more time, so given my constraints, it seems #1 would be best. And in any case, as I understand it, the whole purpose of a theorem is to be an intellectual shortcut, so that when a certain set of conditions hold you can draw a conclusion without worrying about all the details in between. However, I can't shake the feeling that if I go this route, I'll regret it down the road.

So, finally, my question is, which of the four paths should I take, assuming any of them? Moreover, how should the approach change depending on how "central" the theorem is or the nature of the proof?


closed as primarily opinion-based by Will Jagy, mlc, HK Lee, JonMark Perry, user223391 May 11 '17 at 22:12

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    $\begingroup$ Especially for computer science students, the Curry-Howard correspondence could be helpful in organizing thinking about this: the proof of a theorem can be viewed as a function which takes in proofs of the assumptions and outputs a proof of the conclusion. So, think of it as you would think about studying a software library - if just knowing the signatures of functions and what they do is sufficient, fine; if you would like to get insight into how the library is implemented by reading the "source code", that can be helpful for solving similar problems later. $\endgroup$ – Daniel Schepler May 10 '17 at 19:12
  • 3
    $\begingroup$ One problem with approach #1 is that you may well be presented with a situation that is not quite covered by any existing theorems: maybe one of the hypotheses of a theorem is violated. Knowing how the theorem uses that hypothesis might help you come up with a modified theorem that does cover this situation. $\endgroup$ – Robert Israel May 10 '17 at 19:22
  • 1
    $\begingroup$ There may also be some other options, like learning the easy proofs but skipping the hard proofs, or getting the gist of certain proofs but skipping difficult steps. If a theorem is difficult to prove, sometimes you can include some additional hypotheses that make the proof much easier without changing the spirit of the theorem. Or maybe there is a special case which is easy to prove. Sometimes deriving a result informally is much easier than giving a rigorous proof. $\endgroup$ – littleO May 10 '17 at 19:41
  • 2
    $\begingroup$ My own way: read the proof. If it looks easy enough, perform 3. If not, try and understand the strategy of the proof and skip the details. If not possible, perform 1. $\endgroup$ – Yves Daoust May 10 '17 at 20:54
  • 1
    $\begingroup$ It depends on the theorem. Some theorems have ugly proofs whose methods are not helpful for other problems you'll encounter and what is important is the statement. Some theorems have a statement you would rarely apply in isolation but the methods used in the proof are vital. Many books won't do much to distinguish these, especially as they can't know what applications the reader cares about. A good teacher with knowledge of what you need the math for may be able to let you know what to focus on, though. $\endgroup$ – Mark S. May 10 '17 at 21:13

One attitude in applied disciplines is to learn enough math to be productive, which doesn't neatly fit into the four options you listed. Even pure mathematicians find themselves adopting this attitude for certain projects.

Getting better at math is a broad goal, and there are a lot of ways to accomplish this. It sounds like you have your fundamentals down (such as those covered in an Intro to Proofs course). I would suggest you find a topic of interest, then pick a book and work through it. Ask yourself: "how might a course in this subject be structured?" (Finding other folks' course sites might be a helpful guide). Then follow the structure, deviating where you feel appropriate. Beyond going through the proofs and examples in the text, make sure to work a lot of exercises as well.

If you have a friend or mentor with whom you can work through the material, that's always ideal. Much of what you'll learn about mathematics will come through your discussions with your peers. If not, sites like this one are great places to seek feedback and help where needed.

In this way, you are not only working on a subject of interest, but developing your mathematical maturity at the same time.


Many proofs are constructive. That is, the existence of an object is proved by providing an algorithm to construct that object. Numerical analysis and graph theory are two disciplines in the intersection of mathematics and computer science that are full of these types of examples. in that context, I think it makes a lot of sense for a computer scientist to try understand proofs.


Not the answer you're looking for? Browse other questions tagged or ask your own question.