Proof environment

It has long been thought impossible to make a proof environment which automatically includes an 'end-of-proof' symbol. Some proofs end in displayed maths; others do not. If the input file contains ...\] \end{proof} then LaTeX finishes off the displayed maths and gets ready for a new line before it reads any instructions connected with ending the proof, so the code is very tricky. You can insert the symbol by hand, but the ntheorem package now solves the problem for LaTeX users: it does indeed provide an automatic way of signalling the end of a proof.

The AMSLaTeX package amsthm also provides a proof environment that does the job; though you need to insert a \qedhere command if the proof ends with a displayed equation.

amsthm.sty
Distributed as part of the AMSLaTeX bundle macros/latex/required/amslatex.tar.gz
ntheorem
macros/latex/contrib/supported/ntheorem.tar.gz