# How to correctly format (and align) a LaTeX proof?

I'm new to LaTeX and I'm trying to figure out how to correctly format a proof. Can someone show me a basic template for how to do this?

The part I am having the most trouble with is creating new columns and customizing alignment... for instance, how do I add a right-aligned annotation (i.e. by distributive property) to a line of this sample proof? Should I use eqnarray* or is there a better option?

\begin{proof}
Let $t,u \in \mathbb{R}$ where $t=xy$ and $u=zw$. So,
\begin{eqnarray*}
4xyzw &=& 2\cdot2tu \\
&\le& 2\cdot(t^2+u^2) \\
&=& 2\cdot((xy)^2+(zw)^2) \\
&=& 2\cdot(x^2y^2+z^2w^2) \\
&=& 2x^2y^2+2z^2w^2 \\
&\le& ((x^2)^2+(y^2)^2)+((z^2)^2)+(w^2)^2) \\
&=& x^4+y^4+z^4+w^4
\end{eqnarray*}
\end{proof}

• Consider \eqnarray vs align with regards to your last question of using eqnarray*. The short of it is that you should rather avoid it in lieu of something like the align environment from amsmath. Sep 2 '11 at 16:57

\documentclass{article}

\usepackage{amsmath,amsthm,amssymb}

\begin{document}

\begin{proof}
Let $t,u \in \mathbb{R}$ where $t=xy$ and $u=zw$. So,
\begin{align*}
4xyzw &= 2\cdot2tu \\
&\le 2\cdot(t^2+u^2) \\
&= 2\cdot((xy)^2+(zw)^2) &&\text{(substituting variables)} \\
&= 2\cdot(x^2y^2+z^2w^2) \\
&= 2x^2y^2+2z^2w^2 \\
&\le ((x^2)^2+(y^2)^2)+((z^2)^2)+(w^2)^2) \\
&= x^4+y^4+z^4+w^4 &&\qedhere
\end{align*}
\end{proof}

\end{document}


The alignment is better (eqnarray should never be used for serious mathematical writing) and, moreover, the "end-of-proof" can be placed aligned with the last equation; \qedhere is necessary only when the proof ends with an alignment environment or with a list (enumerate, itemize or description); the && before \qedhere is only necessary when there are other comments.

I didn't check the math, though. ;-)

• thanks for the info! should the QED symbol always be placed to the far right of the last line of text? is that convention? Sep 2 '11 at 17:28
• @alex: It has become convention because of how amsmath places the symbol :) The important point is that you should use \qedhere if the last line is inside an equation, since otherwise the QED ends up alone on the next line, which is ugly. Sep 2 '11 at 17:57
• @alex, @Ryan -- the qed symbol (sometimes called the "tombstone") was placed to the far right by many math publishers long before amsmath came into being. that said, the position is considered to be a "house style". the originator appears to be Paul Halmos; see Handbook of Writing for the Mathematical Sciences, by Nicholas J. Higham, quote on p.11. before the square, "qed" in small caps was often used to indicate the end of a proof, and some authors still prefer that. Sep 2 '11 at 19:15
• "eqnarray should never be used for serious mathematical writing" - I've used it for 10 years now ... Mar 28 '15 at 1:50
• @MartinBrandenburg You're always in time for switching to serious math writing. ;-) Mar 28 '15 at 10:16

Adding to egreg's remarks: to add right-aligned annotation — in parentheses — you can use the \tag macro; to have annotation without parentheses, use the \tag* macro. (This must be given before the line-break; for this reason, I like to put the line break immediately before the following line, but that's just my personal style.) And again, as egreg noted, you should use \qedhere on the last line of an equation environment, if your proof ends at an equation.

\begin{align*}
4xyzw
&= 2\cdot2tu
\\ &\le 2\cdot(t^2+u^2)                    \tag{a remark in parentheses}
\\ &= 2\cdot((xy)^2+(zw)^2)
\\ &= 2\cdot(x^2y^2+z^2w^2)                \tag*{a remark without parentheses}
\\ &= 2x^2y^2+2z^2w^2
\\ &\le ((x^2)^2+(y^2)^2)+((z^2)^2)+(w^2)^2)
\\ &= x^4+y^4+z^4+w^4                      \qedhere
\end{align*}


If you find yourself having multi-line equations where you want equation numbers — but only on the last line — the macro \notag will also come in handy. (I insert them just before the line-breaks, to make it easy to copy the sequence \notag \\ &= for multi-line equations.)

\begin{align}
4xyzw
&= 2\cdot2tu
\notag\\ &\le 2\cdot(t^2+u^2)                    \tag{a remark in parentheses}
\\ &= 2\cdot((xy)^2+(zw)^2)
\notag\\ &= 2\cdot(x^2y^2+z^2w^2)                \tag*{a remark without parentheses}
\\ &= 2x^2y^2+2z^2w^2
\notag \\ &\le ((x^2)^2+(y^2)^2)+((z^2)^2)+(w^2)^2)
\notag \\ &= x^4+y^4+z^4+w^4
\end{align}


Edited to add: don't use \tag or \tag* for remarks, unless you're happy with them appearing on the left (instead of on the right) whilst using the lefteqn option.

• I wouldn't abuse \tag for annotations: with the lefteqn option they will go to the wrong side. Use rather align's features: a&=b &&\text{remark} Sep 2 '11 at 17:14
• Hm. I didn't know that, perhaps as a result of not using lefteqn. I adopted this method (those rare times when I've used it) as it is a way of getting remarks flush with equation numbers. Sep 2 '11 at 17:23
• Easy: never ever use eqnarray Sep 2 '11 at 17:33
• @alexjlockwood: typically, it means "advance to the next column". In eqnarray (don't use it!) equations are blocked into groups of three columns: right-aligned, center-aligned, and left-aligned, after which you jump rightwards some distance to start a new equation further to the right. In align, equations are blocked into groups of two columns: right-aligned, and left-aligned. You'll also encounter & any time you use a table, or a matrix, or similar sorts of environments. Sep 2 '11 at 17:37
• @alex: Jumping of Niel's comment, there is a somewhat more specialized environment called alignat that gives you complete control over how the equation breaks into columns. It's useful if you have several stacked equations which should be aligned at multiple points, with appropriate padding added to make that happen. I only mention it because this effect is impossible to obtain otherwise, but it will be a long time before you need to use it. You should read amsldoc.pdf (or the result of texdoc amsmath) to learn about how these things work. Sep 2 '11 at 18:01

One may also use the alignat environment. See the following:

\documentclass[letterpaper]{article}
\usepackage{amsmath,amssymb}
\newcommand{\justif}[2]{&{#1}&\text{#2}}
\begin{document}
\begin{alignat*}{2}
&= 2x^2y^2+2z^2w^2                            \\ % no remark
&= x^4+y^4+z^4+w^4
\end{alignat*}
\end{document}


Note the introduction of a \justif{<horizontal space>}{<content>} command that takes as arguments the separation and content (remark).

This is not an elegant solution but might be an option nevertheless. You can also fake it with a tabular. This way, you can print some borders if you want (just in case of those provide-the-missing-part tests so loved by some high school math teachers).

\documentclass[10pt]{article}

\usepackage[margin=1in]{geometry}
\usepackage{amsmath}
\usepackage{array}
\newcolumntype{L}{@{\hphantom{.}}>{$}l<{$}}
\renewcommand{\arraystretch}{1.2}
\begin{document}

\begin{tabular}{LLll}
\lvert p-q\rvert & =\sqrt{(p-1)^2} & \hphantom{some text} & by definition of square root\\
&=\sqrt{p^2 -2pq +q^2} & &  by multiplication\\
&=\sqrt{p^2-2pq+q^2 +2pq -2pq} & & by the additive identity\\
&=\sqrt{p^2+2pq+q^2 -4pq} & &     by grouping like terms\\
&=\sqrt{(p+q)^2 -4n} & &          by the distributive law\\
\end{tabular}

\end{document}


You can also use the package witharrows specially written in this aim.

\documentclass{article}
\usepackage{amsthm,amssymb}
\usepackage{witharrows}
\begin{document}
\begin{proof}
Let $t,u \in \mathbb{R}$ where $t=xy$ and $u=zw$. So,
\begin{DispWithArrows*}
4xyzw &= 2\cdot2tu \\
&\le 2\cdot(t^2+u^2) \Arrow[i]{substituting variables}\\
&= 2\cdot((xy)^2+(zw)^2)  \\
&= 2\cdot(x^2y^2+z^2w^2) \\
&= 2x^2y^2+2z^2w^2 \\
&\le ((x^2)^2+(y^2)^2)+((z^2)^C2)+(w^2)^2) \\
&= x^4+y^4+z^4+w^4 \qedhere
\end{DispWithArrows*}
\end{proof}
\end{document}


• I upvote this answer because, in addition to be different to all the previous answers, it also mentions a package which can be tweaked as needed. Thus, fulfilling any future necessity.
– gfe
Apr 29 '20 at 9:45