Second Principle of Mathematical Induction/Algorithm

Algorithm
The second principle of mathematical induction can be implemented as an algorithm as follows.

Let $\map P n$ be a propositional function depending on $n \in \N$.

Let it be established that:
 * $\text{(a)}: \quad \map P 1$ is true
 * $\text{(b)}: \quad$ If all of $\map P 1, \map P 2, \ldots, \map P k$ are true, then $\map P {k + 1}$ is true.

Then the following algorithm provides a proof of $\map P k$ for all $n \in \N$:


 * $\mathbf 1:$ Prove $\map P 1$.
 * Set $k \gets 1$ and prove $\map P 1$ according to $\text{(a)}$.


 * $\mathbf 2:$ Is $k = n$?.
 * If $k = n$ then terminate. The required proof has been output.


 * $\mathbf 3:$ Prove $\map P {k + 1}$.
 * According to $\text{(b)}$, output a proof that if all of $\map P 1, \map P 2, \ldots, \map P k$ are true, then $\map P {k + 1}$ is true.


 * $\mathbf 4:$ Increase $k$.
 * $k \gets k + 1$ and to to step $\mathbf 2$.