Hi,
I have a question that I've been thinking about for a long time.
How can you assure yourself that you've fully comprehended a concept or the true meaning of a theorem in mathematics?
I mean how can you realize that you totally get the concept and it's time to move on to the next pages of the book you're reading?
Thanks in advance for your responses.



I am going to address an aspect of your question that most other respondents seem to have overlooked. It sounds to me that you're asking, how do I know that I've understood a particular concept well enough to be able to turn the page and keep reading? I know some students who get bogged down when reading mathematics because they feel they have to understand each line thoroughly before they can proceed to the next line. While this style works for some people, for most people, this is usually not the best way to absorb a piece of new mathematics. When I am trying to learn a new piece of mathematics, I usually start by latching onto an important theorem and making it a goal to understand that theorem. The theorem might not be stated right at the beginning, but I will turn ahead to see what the theorem says. If the theorem uses terminology that I am not familiar with, then I will go back and look for the definitions of those terms. Sometimes, to understand the definitions, I have to understand some preliminary lemmas, so I will turn to those lemmas and iterate the process. So instead of reading forwards, I often read backwards. On this pass, I will also usually skip the proofs. Only when I have a good sense of the overall structure of the paper or the book chapter, and know where I'm heading, will I then start reading linebyline. If you adopt this method of reading, then it will usually be clear when you're ready to move on to the next step, because you'll be reading with a purpose. 


Charles Sanders Peirce gave the following advice for increasing the clarity of one's concepts:
This is called the Pragmatic Maxim or the Maxim of Pragmatism and there came to be a school of philosophy founded on it. Variations on the same theme and a bit of exposition can be found here. Mathematically speaking, this is a maximally general form of representation principle. A less comprehensive form of it leads to the principle of operational definition that began to exert some influence in science beginning most prominently with Percy Bridgman. 


Here is a strategy that has worked well for me. Take a result you want to understand and try to prove it on your own. If you succeed, great! If not, peek at the beginning of the proof and close the proof the moment you reach an insight you weren't able to think up on your own. Try to prove this insight, and try to complete the proof with this insight at hand. If you succeed, great! If not, repeat. In my experience, trying and failing to prove a result gives you a good appreciation of the proofs that do work. Constructions which might otherwise seem artificial often make sense as overcoming some barrier or other that you stumbled upon. 


I suppose it is difficult to be completely sure and frequently there are several levels of "comprehending" and various interpretation for the "true meaning" of concepts and results. I can mention a few good signs: a) you swim like a fish in the notations around the concept/theorem, b) you can prove the theorem by yourself without seeing the proof first, or at least you can prove it after seeing the proof. And for a concept: you can come up with the proofs of the basic results about the concept. c) The concept/theorem looks natural to you and you could even see yourself discovering it. d) you can ask and answer (correctly) to yourself easy questions around the concept/result. Of course, you should be prepared to situations that you think you have a full understanding and then you discover that you don't and you gain it again and lose it again... Having said that there is a certain feeling when it comes to problems/theorems/concepts of "I got it", the phase transition between not or vaguely understanding and a complete or almost complete understanding. You should be able to indentify this transition. (And problemsolving can give you a good practice.) One good advice about this is to interact: compare your understanding with fellow students/colleagues, and dont be shy to ask questions. (I cannot resist mentioning the story about a professor who complained to a colleague: I taught it once and the student did not understand; I taught it for the second time and they did not understand; Then I taught it for the third time and I understood, but they still did not understand.) 


By "understanding" a piece of mathematics, do you mean:
If you said 'yes' to one or more of the above, then your interpretation of the activity of "understanding mathematics"  and yes, it is an activity  has a lot in common with, and may in fact be identical to, the enterprise of mathematical research. That is: mathematical research is no more or less than the attempt to better 'understand' our own mathematical ideas, and how they may be fruitfully applied: both to others of our mathematical ideas, and to more "empiricallyinclined" situations. Furthermore, Turing and Gödel demonstrated that this endeavor is sufficently complicated that it cannot be grasped by any algorithmic approach (at least as we currently understand the concept of an 'algorithm'), and the independence of various 'interesting' propositions from our favourite axiomsystems entail that it is openended, i.e. it requires creativity and aesthetic taste on our part as to what mathematical ideas are interesting. Understanding mathematics is the limit of an unbounded process; it doesn't 'happen', and it cannot 'happen'. The best you can do is to simply engage in the activity. 


I think I understand a theorem if I can reconstruct the hypotheses remembering only the conclusion. Likewise, I think I understand a theory if the axioms all seem reasonable and obvious. However, you can't really get this on a first reading. I usually allow myself to proceed if the proof of the theorem catches my interest enough to read the details, or seems too trivial to bother with. If I don't think I could do it but don't care to learn, then I obviously don't appreciate enough of what I have been reading to seriously try reading more. Perhaps the ultimate test is if you can use said theorem for something. 


I like to try and disprove results I am trying to understand. Sometimes I'll give it a good month I start by constructing perverse sequences and little heuristic arguments when I'm onto something good I'll pursue it 'til it's rigorous: more often than not it turns out to be precisely the case disallowed by the theorem's assumptions. After a while I start to paint my counterarguments in generalities "An A is not a B if A has perversity X" and I look for the exact line in the proof where 'perversity X' is (perhaps implicitly) dealt with and debunked. Sooner or later I start to see what every line in the proof is for, moreover I start to see why it must be true. It may not be the fastest way to learn, but it's certainly entertaining if you're having trouble sleeping! One can also apply the same trick to definitions and constructions by trying to prove that they are useless/degenerate. 


Although we all want to "understand the concepts", I would encourage you to measure how well you are learning mathematics not by whether you "understand a concept" or not (because this is in the end too vaguely defined) but by whether you can use what you have learned to do something useful. For students, this usually means doing the problems at the end of the section or chapter. For those using mathematics as a tool (like Steve Huntsman), it means writing software that uses the mathematics learned. For both students and professionals, it also often means working out the details usually via computations of examples that illustrate what you have just learned. And, of course, if you are or are striving to be a pure mathematician, it can also mean using what you learned to prove other mathematical statements you want or need. If you are able to do any of these things with what you have just learned, then you should definitely move along to the next thing. Because, as others have already advised you, you might want to move along, even if you can't do anything useful yet. When learning mathematics, you should definitely try to be able to do something useful (e.g., work out examples and/or solve problems) with most of what you are learning. However, everybody runs into things that just don't sink in despite intensive effort. As long as you're learning most of everything else, it is often advisable to just move ahead and return later after you know more and are more experienced. Everything gets easier, if not on the second try, usually by the tenth. 


You cannot, because you never will. There is always more to understand about any given topic. 


If you have a colleague to hand who doesn't know about the idea you're trying to understand but has the appropriate background, then that's brilliant, because you can test your understanding by trying to explain it to them. Similarly, when I've had occasion to write up brief expositions or notes for a talk on a topic, I find it allows me to efficiently identify and dispel many of the little uncertainties and misunderstandings that pop up in great numbers when you first learn about something. It may be overkill, but if you can do that kind of thing rigorously and thoroughly without your intuitions changing, then you can certainly congratulate yourself on knowing what you're talking about. 


There is a famous quote from John Von Neumann: “In mathematics you don't understand things. You just get used to them.” I don't know for sure what this means but, perhaps it means that asking if you understand something is a question that does not really make sense, in fact your question is really asking: What is the definition of understanding. Such a question may be doomed from the start. Even if we could agree on some definition and you were to apply it to some mathematical concept I am sure that at some later time, after you have learned other things, your new perspective will make you feel like you never understood that concept anyway. So my advice is to take your concept and get used to it. Here are some ideas on how. 1)If it's a definition try to think up some examples and nonexamples. The nonexamples are especially useful when your concept is adding an adjective to something you already know; like adding "prime" to "number" 2) I it's a theorem try to identify exactly where the hypotheses are used in the proof, and try to think up counterexamples to the statement as you remove those hypotheses. 3) If there are exercises, ie if you are reading a textbook, try them. Even if you don't get to them all at least read the statements. 4) After you think you are used to your idea try to explain it to someone. This is a really good way to see if you have overlooked something. 5) As to the remark about moving on to the next few pages: Don't expect to go through a book line by line and not have to go back. The stuff later in the book may help. In short if you work a lot with your concept it will cease to intimidate you. Don't worry about achieving understanding (equivalently seeing the true meaning), This will never happen, which is fine since it's the trying that is important anyway. So keep trying, and have fun doing so! 


Try to explain the concept to others. If they understand it also, then you may be sure you have a good grasp of what is going on. If they ask a natural question, and you cannot answer, then it may help you to rethink about the concept in a new way. They can also provide a different view on it, so as to enrich your understanding. "Ce qui se concoit bien s'enonce clairement et les mots pour le dire viennent aisement" (Boileau) [whatever is well conceived is clearly said... and the words to say it flow with ease.] 


I usually feel that I best understand a construction (versus a proof) when I can successfully implement it in code (note that this is not to say the converse: that I wouldn't understand something I hadn't coded). I have found in practice that programming causes you to confront details and highlights phenomena that would often otherwise be quite obscure or even "deep". The best things about this are the lack of ambiguity about whether or not code works and the ability to isolate bugs and highlight areas of the construction that are still (perhaps unexpectedly) unclear. 


I like to take a playful attitude towards things. I try out the concept in various elementary or even trivial contexts at first, and see what happens. This is particularly useful when the result disagrees with what I had initially expected for the concept, since it leads me to revise my intuitions about the concept. But when it conforms with my initial expectations, then it lends support to those initial intuitions, building up my understanding. Then I can move on to more substantive examples. Gradually, by exploring the concept in a variety of these more substantive contexts, one arrives at a deeper understanding of the concept. So eventually, it becomes clear, and you know it. Nevertheless, I believe also that ultimately, one is never fully certain that a concept is completely understood. Surely we all at times learn new things about concepts that we thought formerly to be completely understood. Perhaps we have unknowingly considered examples only of a certain type, and therefore did not fully appreciate the possibilities and perhaps inadvertantly built incorrect intuitions that way. And while this sometimes happens, fortunately, for most of us it is rare. So press on when you feel that you understand the concept and some principal examples, but be willing to reconsider things from the beginning when strange new examples come to light. 

