Lecture 30: Structural induction

Inductively defined sets

An inductively defined set is a set where the elements are constructed by a finite number of applications of a given set of rules.



Compact way of writing down inductively defined sets: BNF (Backus Naur Form)

Only the name of the set and the rules are written down; they are separated by a "::=", and the rules are separated by vertical bar ().

Examples (from above):

Here, the variables to the left of the  ∈  indicate metavariables. When the same characters appear in the rules on the right-hand side of the : :  = , they indicate an arbitrary element of the set being defined. For example, the r1 and r2 in the r1 + r2 rule could be arbitrary elements of the set RE, but  +  is just the symbol  + .

Inductively defined functions

If X is an inductively defined set, you can define a function from X to Y by defining the function on each of the types of elements of X; i.e. for each of the rules. In the inductive rules (i.e. the ones containing the metavariable being defined), you can assume the function is already defined on the subterms.


Proofs by structural induction

If X is an inductively defined set, then you can prove statements of the form ∀ x ∈ X, P(x) by giving a separate proof for each rule. For the inductive/recursive rules (i.e. the ones containing metavariables), you can assume that P holds on all subexpressions of x.