Theorems, Cases, and Equation Numbering

  • JNext lesson
  • KPrevious lesson
  • FSearch lessons
  • EscClear search

This lesson covers the structured environments that give mathematical documents their formal backbone: theorem blocks, piecewise functions, custom operators, equation management, and fine-tuning tools.

Theorem Environments

Mathematical documents need structured environments for theorems, lemmas, definitions, and proofs. The amsthm package provides this.

Defining Theorem Styles

Theorem environments are declared in the preamble. The amsthm package offers three built-in styles:

\usepackage{amsthm}

\theoremstyle{plain}       % Italic body
\newtheorem{theorem}{Theorem}[chapter]
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{proposition}[theorem]{Proposition}

\theoremstyle{definition}  % Upright body
\newtheorem{definition}{Definition}[chapter]
\newtheorem{example}{Example}[chapter]

\theoremstyle{remark}      % Italic header, upright body
\newtheorem{remark}{Remark}[chapter]
  • plain — for theorems, lemmas, corollaries. The body text is italicized.
  • definition — for definitions and examples. The body text is upright (roman).
  • remark — for remarks and notes. Lighter visual weight.

Using Theorem Environments

\begin{theorem}[Pythagorean]
\label{thm:pythag}
For a right triangle with legs $a$, $b$ and hypotenuse $c$:
<!--M21-->
\end{theorem}

\begin{proof}
Consider a square of side $a+b$...
\end{proof}

Rendered result:

Theorem 5.1 (Pythagorean). For a right triangle with legs \( a \), \( b \) and hypotenuse \( c \):

$$ a^2 + b^2 = c^2 $$

Proof. Consider a square of side \( a+b \)…

The [theorem] option in \newtheorem{lemma}[theorem]{Lemma} means lemmas share the theorem counter. This produces Theorem 1, Lemma 2, Corollary 3 instead of Theorem 1, Lemma 1, Corollary 1. Shared counters make it easier to find results in a document.

Custom Theorem Styles with tcolorbox

For visually distinct theorems, combine amsthm with tcolorbox:

\newtcbtheorem[number within=chapter]{mythm}{Theorem}{
    colback=ramanujanblue!5,
    colframe=ramanujanblue,
    fonttitle=\bfseries,
    arc=3pt,
    boxrule=0.8pt
}{thm}

\begin{mythm}{Fundamental Theorem of Calculus}{ftc}
If $f$ is continuous on $[a,b]$ and $F'(x) = f(x)$, then
<!--M22-->
\end{mythm}

This creates a colored box around the theorem with a styled title bar. The {thm} at the end is the label prefix, so this theorem can be referenced as thm:ftc.

Cases and Piecewise Functions

The cases environment handles piecewise definitions:

<!--M23-->

Rendered result:

$$ |x| = \begin{cases} x & \text{if } x \geq 0 \\ -x & \text{if } x < 0 \end{cases} $$

Right-Brace Cases

For a system of equations with a right brace (the reverse of cases), use aligned with manual delimiters:

<!--M24-->

Rendered result:

$$ \left.\begin{aligned} x + y &= 5 \\ 2x – y &= 1 \end{aligned}\right\} \quad \Rightarrow \quad x = 2, \; y = 3 $$

The \left. produces an invisible left delimiter that pairs with \right\} to create the right brace.

Custom Operators

When your field uses operators that aren’t predefined, create them with \DeclareMathOperator:

% In the preamble:
\DeclareMathOperator{\tr}{tr}         % trace
\DeclareMathOperator{\diag}{diag}     % diagonal
\DeclareMathOperator{\rank}{rank}     % rank
\DeclareMathOperator{\sgn}{sgn}       % sign function
\DeclareMathOperator{\Span}{span}     % span (note capital S)
\DeclareMathOperator*{\argmax}{arg\,max}  % with limits

% In the document:
$\tr(A) = \sum_i a_{ii}$, $\rank(A) = 3$
<!--M25-->

Rendered result:

Inline: \( \operatorname{tr}(A) = \sum_i a_{ii} \), \( \operatorname{rank}(A) = 3 \)

Display:

$$ \hat{\theta} = \operatorname*{arg\,max}_{\theta} \mathcal{L}(\theta) $$

The starred form \DeclareMathOperator* places subscripts below the operator in display mode (like \lim). Without the star, subscripts appear to the side.

Why not just type \text{tr}? Because \DeclareMathOperator applies proper operator spacing, uses the correct font, and works consistently in all math contexts.

Equation Numbering and Tags

Controlling Numbering

% Numbered (default)
\begin{equation}
  E = mc^2
\end{equation}

% Unnumbered
\begin{equation*}
  E = mc^2
\end{equation*}

% Custom tag
\begin{equation}
  E = mc^2 \tag{Einstein}
\end{equation}

% Numbered by section: (5.1), (5.2), ...
% Add to preamble:
\numberwithin{equation}{section}

The \tag command replaces the automatic number with any text you choose. The \numberwithin command resets equation numbers at each section, producing numbers like (5.1), (5.2) instead of (1), (2), (3) throughout the entire document.

Subequations

Group related equations under one number:

\begin{subequations}\label{eq:maxwell}
\begin{align}
  \nabla \cdot \vec{E} &= \frac{\rho}{\varepsilon_0}
    \label{eq:gauss-e} \\
  \nabla \cdot \vec{B} &= 0
    \label{eq:gauss-m} \\
  \nabla \times \vec{E} &= -\frac{\partial \vec{B}}{\partial t}
    \label{eq:faraday} \\
  \nabla \times \vec{B} &= \mu_0\vec{J}
    + \mu_0\varepsilon_0\frac{\partial \vec{E}}{\partial t}
    \label{eq:ampere}
\end{align}
\end{subequations}
Maxwell's equations~\eqref{eq:maxwell}.
Gauss's law is~\eqref{eq:gauss-e}.

This produces equations numbered (5.1a), (5.1b), (5.1c), (5.1d), and you can reference the group as (5.1) or individual equations like (5.1a).

Commutative Diagrams

For algebra and category theory, the tikz-cd package draws commutative diagrams:

\usepackage{tikz-cd}  % in preamble

<!--M26-->

This produces a square diagram with objects A, B, C, D at the corners and labeled arrows connecting them. The ' after a label places it on the opposite side of the arrow (below or left instead of above or right).

Arrow direction shortcuts: r = right, d = down, l = left, u = up. You can combine them: rd draws a diagonal arrow.

Boxed Equations

Highlight important results with \boxed:

<!--M27-->

Rendered result:

$$ \boxed{E = mc^2} $$

This draws a thin rectangle around the equation, making key results stand out on the page.

Phantom and Smash

Fine-tuning tools for alignment:

  • \phantom{x} — invisible space the size of \( x \). Useful for alignment.
  • \hphantom{x} — horizontal space only.
  • \vphantom{x} — vertical space only. Forces consistent delimiter height.
  • \smash{x} — renders \( x \) with zero height. Prevents stretching.

Using vphantom for Consistent Delimiters

% Without vphantom (uneven)
$\left(\frac{a}{b}\right) + \left(c\right)$

% With vphantom (even)
$\left(\frac{a}{b}\right)
 + \left(\vphantom{\frac{a}{b}}c\right)$

Without \vphantom, the second pair of parentheses is much shorter than the first because \( c \) is smaller than \( \frac{a}{b} \). Adding \vphantom{\frac{a}{b}} inside the second pair forces the delimiters to match the height of the fraction, even though the phantom itself is invisible.

Numbering and Referencing Best Practices

Golden rules for equation management:

  1. Number equations you’ll reference. Leave the rest unnumbered.
  2. Use \eqref (not \ref) for equation references. It adds parentheses automatically: Equation (5.1) not Equation 5.1.
  3. Use descriptive labels: eq:cauchy-schwarz not eq:1.
  4. Group related equations with subequations.
  5. Use \numberwithin{equation}{section} for long documents.

Exercises

  1. Typeset Maxwell’s equations using the align environment with proper numbering and labels.

  2. Create a \( 4 \times 4 \) identity matrix, a general \( 3 \times 4 \) matrix with dot notation, and a \( 3 \times 4 \) augmented matrix.

  3. Define and use a theorem environment. State and prove the AM-GM inequality: \( \frac{a+b}{2} \geq \sqrt{ab} \) for \( a, b \geq 0 \).

  4. Create a custom operator \Hom and use it in a sentence: “The Hom-set \( \operatorname{Hom}(A,B) \) is…”

  5. Typeset the Schrodinger equation in both time-dependent and time-independent forms using subequations.