\subsection{Mathematical Induction}
{\small NOTE: These types of induction were (primarily) mentioned in the Formal Methods part of the course, but made most sense to be put here}

\subsubsection{Weak Mathematical Induction}
To prove $\forall n \in \N. P$ (with $n$ free in $P$), we do the following:

\shade{blue}{Base case} We show that $P[n \mapsto 0]$ is correct

\shade{green}{Step case} For an arbitrary $m$ not free in $P$, we show that $P[n \mapsto m + 1]$ is correct under the assumption that $P[n \mapsto m]$ is correct.

For \bi{well-founded} domains, we have to adjust the induction hypothesis slightly: We assume $\forall l \in \N. l < m \rightarrow P[n \mapsto l]$
and then prove $P[n \mapsto m]$ under our assumption.

The same, but expressed as a Natural Deduction rule:
\[
    \begin{prooftree}
        \hypo{\Gamma \vdash P(0)}
        \hypo{\Gamma, P(n) \vdash P(n + 1)}
        \infer2{\Gamma \vdash \forall n. P(n)}
    \end{prooftree}
\]


\subsubsection{Strong Mathematical Induction}
