Recalling and applying theorems for solving problem For  higher level math (such as numerical linear algebra) I need to use many theorems and proof to solve new problems. So during the study, I am trying  to understand most of theorem and details in the proofs rather than just reading and memorizing. But I have a feeling this is not enough. The problem is I cannot recall them when it is needed and I ended up googling them. As a result they never become a part of my long term memory. 
Does Any one with similar problem have found  a practical way to improve? 
Thanks.
 A: You aren't going to be able to remember every single theorem you encounter, but there are some theorems you absolutely should know. Take linear algebra for instance. You should KNOW by heart that a complex matrix is invertible if and only if its determinant is not trivial. That is something you should always be able to recall. Now, the following is a theorem:
Let $F:X \rightarrow Y$ be a linear map, $X,Y$ normed vector spaces. Then the following are equivalent:
1.) $F$ is continuous
2.) $F$ is continuous at a point
3.) There is a $c>0$ such that $|F(x)|_Y \leq c|x|_X$ for every $x \in X$.
Now should you be able to remember that off the top of your head? Well, it depends on what your interests are. If you find yourself doing analysis on Banach spaces well yeah, you should probably remember that. But if you're just doing numerical linear algebra and don't intend to do much else, then don't sweat forgetting this one.
This, I think, is just another aspect of mathematical maturity. Learning which theorems could be useful for you in the future and which can just be googled should they become necessary is kind of an acquired skill I think and is just as important as all the others.
