Strong induction

From CS2800 wiki

Strong induction is similar to weak induction, except that you make additional assumptions in the inductive step.

To prove "for all [math]n \href{/cs2800/wiki/index.php/%5Cin}{\in} \href{/cs2800/wiki/index.php/%E2%84%95}{ℕ} [/math], P(n)" by strong induction, you must

  • prove [math]P(0) [/math] (this is called the base case), and
  • for an arbitrary [math]n [/math], prove [math]P(n) [/math], assuming [math]P(n-1),P(n-2),\dots,P(0) [/math] (this is the inductive step)

More concisely, the inductive step requires you to prove [math]P(n) [/math] assuming [math]P(k) [/math] for all [math]k \lt n [/math].

The difference between strong induction and weak induction is only the set of assumptions made in the inductive step.

The intuition for why strong induction works is the same reason as that for weak induction: in order to prove [math]P(5) [/math], for example, I would first use the base case to conclude [math]P(0) [/math]. Next, I would use the inductive step to prove [math]P(1) [/math]; this inductive step may use [math]P(0) [/math] but that's ok, because we've already proved [math]P(0) [/math]. I would then use the inductive step to conclude [math]P(2) [/math]; this may use both [math]P(0) [/math] and [math]P(1) [/math], but that's okay because we've already proved [math]P(0) [/math] and [math]P(1) [/math]. Next, I would again use the inductive step to conclude [math]P(3) [/math]; as before, this may use [math]P(0) [/math], [math]P(1) [/math], or [math]P(2) [/math], but this is not a problem since we have already proved those three facts. Similarly, we can use the inductive step to conclude P(4), P(5), etc.

Note that you can always use strong induction instead of weak induction. Using weak induction is just a matter of style: by avoiding unneeded assumptions, you reduce the complexity of your proof, and clearly indicate to the reader what assumptions you are actually planning to use. I often start inductive proofs by not specifying whether they are proofs by strong or weak induction; once I know which inductive hypothesis I actually need, I go back and fill in the beginning of my inductive step.