Induction principle (type theory)

In dependent type theory, the induction principle of a type defines the behaviour of its dependent pattern-matching and recursion analogously to the usual meaning of "induction principle" in mathematics.[cite:@hottbook]

Idea

Consider the typical induction principle of the natural numbers:

To show that a predicate P holds for all natural numbers, one must

  1. prove P(0), and

  2. prove P(k) implies P(k+1) for all n.

The latter proof defines a "domino effect" on the natural numbers and the former knocks down the first domino: we proved P(0), which implies P(1), which implies P(2), ... and so on.

In type theory, this induction principle is expressed as a dependent functionIf we were to instead define ind as a non-dependent function we would be left with the less powerful recursion principle.

ind:P:𝒰P0(k:PkP(k+1))n:Pn

defined by the equations

ind(P,c0,cs,0):=c0,ind(P,c0,cs,n+1):=cs(n,ind(P,c0,cs,n)).

The induction principle of the naturals is just one instance of a larger idea; in type theory, every inductively-defined type has an induction principle.