Induction, Strings, and Languages
One of the most powerful ways of proving properties of numbers, data structures, or programs is proof by induction. And one of the most powerful ways of defining programs or data structures is by an inductive definition, also referred to as a recursive definition. Section 2.1 provides a firm basis for these principles by introducing proof by induction for the set N of natural numbers and then looking at the recursive definition of numerical functions. Words are strings of letters and numbers are strings of digits, and in Section 2.2 we look at the set of strings over an arbitrary set, stressing how induction over the length of strings may be used for both proofs and definitions. We also introduce the algebraic notion of “semiring” which plays an important role in our study of graphs in Section 6.2.
KeywordsInduction Step Basis Step Empty String Commutative Monoid Recursive Definition
Unable to display preview. Download preview PDF.