Skip to main content

Introduction

In this chapter, we introduce a fundamental idea of discrete mathematics and computer science: recursion. Essentially, recursion is a problem-solving strategy in which we replace the problem we are trying to solve with a smaller, hopefully easier, version of the same problem. We continue this replacement with smaller and smaller versions of the problem until we eventually reach a version of the problem that is small enough to know the answer.
We start our exploration of recursions by looking at recursively-defined sequences in Section 8.1. Next, in Section 8.2, we introduce proof by mathematical induction, a proof format that is particularly useful for verifying that recursively-defined structures have explicit properties. In Section 8.3, we take a brief excursion to visit matrices and finite groups, which also gives us the opportunity to practice proofs by mathematical induction. Section 8.5 we explore the Fibonacci sequence and other examples of higher order recursions and introduce an extension of proof by mathematical induction. Last, we investigate other recursively-defined structures, including sets and graphs, and how to count with recursions in Section 8.4.