Induction-induction is a principle for mutually defining data types $A : Set$ and $B: A \to Set$. Both $A$ and $B$ are defined inductively, and the constructors for $A$ can refer to $B$ and vice versa. In addition, the constructor for $B$ can refer to the constructor for $A$. Induction-induction occurs in a natural way when formalising dependent type theory in type theory.

Inductive-inductive types are related to inductive-recursive types. Importantly, inductive-inductive types can be reduced to indexed inductive types.

The consistency of the framework used for the elimination (the theorem prover Agda) is not so clear, as it allows the definition of a universe containing a code for itself. There is an axiomatisation of the new principle in such a way that the resulting type theory is consistent, as proved by constructing a set-theoretic model; see ForsbergSetzer.

Higher inductive inductive types

Experiments with higher inductive inductive types can be found in the book: Cauchy reals (11.3) and Conway surreals (11.6).

References

Fredrik Nordvall Forsberg and Anton Setzer, A finite axiomatisation of inductive-inductive definitionsPDF

Fredrik Nordvall Forsberg and Anton Setzer, Inductive-Inductive Definitions, Computer Science Logic, Lecture Notes in Computer Science Volume 6247, 2010, pp 454-468 Paper.

Fredrik Nordvall Forsberg, Inductive-inductive definitions, PhD thesis Swansea University, 2013. PDF

Last revised on June 25, 2018 at 11:31:41.
See the history of this page for a list of all contributions to it.