Tips for writing proofs When writing formal proofs in abstract and linear algebra, what kind of jargon is useful for conveying solutions effectively to others? In general, how should one go about structuring a formal proof so that it is both clear and succinct? What are some strategies for approaching problems that you will need to write formal proofs for?
 A: You might find this useful: Halmos on Writing Math
A: That is a mouthful of questions.  There are no definitive answers, but here are some ideas:
Being clear and succinct:
First, when you write your proof, make sure you define your terms, and your symbols.  Don't make your readers scramble to look up terms.  And if someone doesn't know what $\phi (a)$ is, how is he supposed to find out?  
Of course I'm not suggesting you define things like "a group of order 15".  This really is standard.  If your reader doesn't know what a group is, he should read elsewhere.  But I've had recent encounters with words like "unicity" (does he mean uniqueness?).  What does the symbol dL/dT.L mean?  Maybe it's standard somewhere, but I've never seen it.  If there is any doubt, define what you mean.
Next, settle on a clear scheme for your notation.  If you have two vector spaces V and W, maybe your V vectors should be {$v_1, v_2, ... v_n$} and use w's for the W space.  Why use a's and b's?  Yet some people do.  Worse, they change the notation in midstream -- a guaranteed way to confuse people. Then there are the writers who reuse symbols and assign them different meanings later in the proof.
I would add that personally I am not a fan a Greek letters, if only because they are a pain to type; but they can be hard to read also.  However, if you have an "A" and "a" that are related and want to introduce an $"\alpha"$ that is also connected, that makes sense.  
Once you've figured out your proof, think of writing it as if you were trying to explain it to a bright high school algebra student.  Write down each step and at least on the first draft don't leave out any steps.  Make sure you explain properly how you get from each step to the next.
As with defining your terms, this requires some judgement.  If you write "x + 3 = 6 so that x = 3" you don't have to explain.  If you write "a group of order 15 must have subgroups of order 5 and 3" whether you explain depends on who your audience will be.  If it is a conference of group theorists, you can skip the explanation.  If it is a 1st course in group theory, you probably should include it.
Begin by erring on the side of including more rather than less explanation. Note the word "begin".  Clear, succinct proofs to not spontaneously spring into life.  They are usually the result of several careful, attentive drafts. If I'm writing seriously I usually plan on 4 drafts.  This is true even for material that has nothing to do with math, which people manage to misunderstand anyway. 
Do not skimp on drafts, but put each one away for awhile before starting on the next.  Then reread what you did with a newly critical eye. What would your supposed high school student think?
Finally, if you have a lot of explanation that is impeding the flow of the proof, move some of it to footnotes.  That way people can follow your argument without getting tangled up in the details.  If they really want the details, they'll read the notes.
How to approach:  Many books have been written on this endless subject. I can't write a book but here are some ideas:
A.  Make sure you understand what is being asked.  Do you understand the definitions?  How are you going to prove something about independent vectors if you don't know what "independent" means. 
B.  Start with some simple examples.  You have a problem in $R^n$?  Can you solve it for $R^2$?  Many such solutions do not really depend on the 2 and will generalize immediately.  You have a problem about groups?  Can you solve it for a cyclic group? For an Abelian group? For $S_3$? 
Someone once accused me of thinking all matrices are diagonal.  I don't really think that, but if I can solve it for a diagonal matrix, maybe I can solve it for a diagonalizable matrix.
Once you see how things are working in a simple case, you may get some insight into what is going on. Or maybe you can piggyback on your special case -- show that the difference between that and the general case doesn't affect things much.  
And starting with a special case is time-honored.  Many important papers have proved only a special case of what is really desired.
C. Develop a big bag of techniques. There are things that are used over and over,  homomorphisms, isomorphisms, linear operators, basis, adjoint etc. etc. Start with the common techniques.  Work a lot of problems involving these techniques.  Someone said that if you have a hammer all problems look like a nail --well not everything can be solved with an isomorphism (I wish it could). How is that for a mixed metaphor?  Avoid them in your papers.
The more problems you work, the more techniques you will know.  You can never know too many.  
There is no short cut to this. 
A: This is a quote from a book called Visual Complex Analysis by Needham
"The basic philosophy of this book is that while it often takes more imagination and effort to find a picture than to do a calculation, the picture will always reward you by bringing you nearer to the Truth"
I find that a picture whenever possible always helps and never hinders.
A: In general, a good proof is one that the intended audience can verify with complete certainty. In other words they should not have to ask any questions to be fully convinced of its correctness. Personally, I would also prefer a proof that is well-structured and does not need one to maintain in the head the current context (analogous to the scope of a statement in a computer program) but explicitly displays its structure, because it prevents mistakes and makes verification easy.
A: I found these series of video lectures informative about how to write proofs. 
Specifically its good for beginners on how to start writing a proof. 
Topology Without Tears - Writing Proofs in Mathematics
Even if it comes with a book about topology its about writing proofs in general.
A: For me the keypoint is this: Reflect what you are thinking when reading proofs of others and what the original proof writer had needed to do in order to you to understand the proof better/faster (and if you understand something exceptional fast, how did the proof writer achieve that?).
Regarding prose: Thinking is sequential, you cannot think simultaneously. This is why correct use of prose can help much. To demonstrate what I mean, I use an example (from here). Consider two different proofs to the following statement:
Demonstrating Example (pay attention on how you are thinking ): 
Let $a,b$ be integers. If $a|b$ and $2|a$, then $2|b$.
Symbolic Version:
Let $a,b$ be integers.
$\left. \begin{eqnarray} 
a|b \implies b = a k \\
2|a \implies a = 2j
\end{eqnarray}  \right \}\implies b=2jk$  
So $2|b$.
Prose Version: Let $a,b$ be integers. By hypothesis, $a|b$ and $2|a$. Then the definition of divisiblity tells us that there is an integer $k$ so that $b=ak$ and another integer $j$ such that $a=2j$. By substituting $a=2j$ into the equation $b=ak$, we get $b=2jk$. Since $j,k$ are both integers, the product $jk$ is also an integer. Therefore by the definition of divisiblity again, we have shown that $2|b$.
Reflecting the example:


*

*You probably searched the symbolic version to find the necessary steps to come to your conclusion (as this example is very easy, these steps seemed very short). This search process probably resulted in the same train of thought, the prose version presented. Then why don't just skip the search process and directly read the way as given in the prose version ( less expense).

*In contrast to the symbolic version the prose version describes at a meta-level what is done and directs you, e.g. we were "substituting" (of course this is very easy to see in this simple example, but as growing more complex, you will appreciate those directions).

*For some people this is also more easy to read, because it reminds them of reading a novel (this is probably ultimately caused by the first point).

*Maybe you think that the prose version contains much overhead caused by "natural words". But look again: Good math prose is concise/functional. "Let", "be integers", "and", "by hypothesis", "then", "the definition of divisiblity", ... all convey a precise message for the train of thought in the proof. Some of those words will become keywords, e.g. if you see "then", you will interpret it as you do with "$\implies$" ("$\implies$" maybe seems to be more direct at first, but that's caused because you directly mapped the math meaning to that symbol. "then" already had a ["non-technical"] meaning beforehand, so mapping that math meaning to that symbol/word will maybe take slightly longer). 
Last aspect of this point: Mentioning maybe your most criticized overhead phrase: "tells us that there is". a) Lateron you won't read it letter by letter or word by word, you just see the phrase (read it very fast as one semantic module ), b) "tells us that there is" reduces your thinking expense. Did you ever made notes only using some words without making real sentences? You probably notice, that after some time, reading those notes will take long because you need to think about the connection of the "staccato phrases". Same applies here. 
Writing good prose:


*

*When you read your proof and and it  feels like "Staccato phrases", consider changing your writing style to fix that (e.g. no equations in the beginning of a sentence and starting with "The equation [...]" ,...).

*Write only as much prose as necessary (concise) and use standard phrases and variable names ("Let",... ; $n$ for $\mathbb{N}$, ...). Choose different looking variable names to prevent mix-up.

*Show the structure of your proof in your formatting: Indent coherent subproofs (lemmas), align simlilar parts (e.g. "integer $k$ such that $b=ak$ and", underneath "another integer $j$ such that $a=2j$).

*Draw a visualisation (potentially using [faster understandable] colors), if possible. This does not only help the reader, it also helps you to get a better comprehensive overview over your proof.

*When writing complex proofs, consider demonstrating lemmas with examples.


Note:


*

*A proof is almost never written directly. Consider writing down some examples, draw a visualsation, look up some definitions, look at the "tricks" of already seen proofs, make a few attempts, ... (maybe use a thin mechanical pencil and a rubber ).

*Mind your readers' memory limits: Try not to introduce to many objects/variables, when they are not necessary. Condense your logic to (known) concepts (e.g. boundness, uniqueness, existence). Be consistent and adhere to habits (e.g. writing set variables capitalized).

*And finally more general: When you think, you don't progress in getting the idea of an proof, don't just look up the solution. Try it just a bit more, mind the "1." point, sleep, and when you finally look up the solution, feel inspired by the tricks you recognise and add them to your repertoire.


If you have additional ideas for good proof writing, feel free to comment. 
Happy proof writing :)!
