In memory of Ker-I Ko, whose indelible contributions to computational complexity included important work (e.g.,[KM81,Ko82,Ko83,Ko87]) on each of this chapter's topics: self-reducibility, selectivity, information, and approximation.
AbstractThis chapter provides a hands-on tutorial on the important technique known as self-reducibility. Through a series of "Challenge Problems" that are theorems that the reader will-after being given definitions and tools-try to prove, the tutorial will ask the reader not to read proofs that use self-reducibility, but rather to discover proofs that use self-reducibility. In particular, the chapter will seek to guide the reader to the discovery of proofs of four interesting theorems-whose focus areas range from selectivity to information to approximation-from the literature, whose proofs draw on self-reducibility.The chapter's goal is to allow interested readers to add self-reducibility to their collection of proof tools. The chapter simultaneously has a related but different goal, namely, to provide a "lesson plan" (and a coordinated set of slides is available online to support this use [Hem19]) for a lecture to a twolecture series that can be given to undergraduate students-even those with no background other than basic discrete mathematics and an understanding of what polynomial-time computation is-to immerse them in hands-on proving, and by doing that, to serve as an invitation to them to take courses on Models of Computation or Complexity Theory. * This arXiv.org report is a preliminary version of a chapter that will appear in the in-preparation book Complexity and Approximation, eds. Ding-Zhu Du and Jie Wang, Springer.