How to shoot down your proofs What are general guidelines for checking your proofs? I believe this is important for graduate students like me. I already know what we need to do to prove something, but you always have to check everything before you send it out. Even to your own advisor.

I've developed myself some strategies by trial and error, and got a lot of advice from my advisor. But this is always a very tedious work. Normally, when you finish with something, you just want to go on to the next problem, but you still have to stick to the current problem until everything is perfect. Here I present an example of my own list of tricks:


Fill in the details. A lot of mistakes are in places were you write "it is clear that...", "without loss of generality...", etc.
Try some numbers. Try extreme cases, like "what happens when I set $n=1$ or $n=1000$".
Keep a clean notebook. Write every day on it, and compare it with your rough notes. I try to write also in latex, I've found many mistakes this way.


What are the general strategies that you apply for checking your proofs?

The objective of this question is to make it a community-wiki.
Software engineers have a notion they call "code smells".  These are symptoms in the code that may indicate a deeper problem.  Software engineers collect mental lists of smells to be aware of (i.e. excessively long methods or too many parameters).  It does not necessarily mean there is a problem, but simply indicate that the writer might want to double check.

I propose that we ought to also consider "proof smells".  This will not give you an algorithm for checking your proofs but it gives a language and a metaphor for recognizing possible problems in proofs.  Some examples of proofs smells:


The adverbs "Clearly", "Obviously", etc.
Reference to the proof of a previous result instead of a reference to the result itself.
Flippant use of a result with many technical preconditions.


There are also more subtle smells.  For example, if a proof uses the binomial theorem to expand an expression and then later uses the binomial theorem to return to a closed form, then maybe there is a direct manipulation on the closed form that gives the same result. 

My suggestion is to collect a (mental or written) list of such smells and check for them as you read through your work.  The nice side effect of this approach is that it will also make you a better reader.

Note: My hope in this answer was to give intuitive side to the rigorous answer supplied by Lamport's How to Write a Proof referenced in M. Alaggan's answer.