Induction-induction

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Induction-induction" – news · newspapers · books · scholar · JSTOR (September 2018) (Learn how and when to remove this message)

|

This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (September 2018) (Learn how and when to remove this message)

|

(Learn how and when to remove this message)

In intuitionistic type theory (ITT), a discipline within mathematical logic, induction-induction is for simultaneously declaring some inductive type and some inductive predicate over this type.

An inductive definition is given by rules for generating elements of some type. One can then define some predicate on that type by providing constructors for forming the elements of the predicate, such inductively on the way the elements of the type are generated. Induction-induction generalizes this situation since one can simultaneously define the type and the predicate, because the rules for generating elements of the type A : T y p e {\displaystyle A:{\mathsf {Type}}} are allowed to refer to the predicate B : A → T y p e {\displaystyle B:A\to {\mathsf {Type}}} .

Induction-induction can be used to define larger types including various universe constructions in type theory.[1] and limit constructions in category/topos theory.

## Example 1

[edit]

Present the type  A {\displaystyle A} as having the following constructors, note the early reference to the predicate  B {\displaystyle B}  :

* a a : A {\displaystyle aa:A}
* ℓ ℓ : ∑ x : A B ( x ) → A ; {\displaystyle \ell \ell :\sum _{x:A}B(x)\to A;}

and-simultaneously present the predicate  B {\displaystyle B} as having the following constructors :

* T r u : B ( a a ) {\displaystyle {\mathsf {Tru}}:B(aa)}
* F a l : B ( a a ) {\displaystyle {\mathsf {Fal}}:B(aa)}
* if  x : A {\displaystyle x:A} and  y : B ( x ) {\displaystyle y:B(x)} then  Z e r : B ( ℓ ℓ ( x , y ) ) {\displaystyle {\mathsf {Zer}}:B(\ell \ell (x,y))}
* if  x : A {\displaystyle x:A} and  y : B ( x ) {\displaystyle y:B(x)} and  z : B ( ℓ ℓ ( x , y ) ) {\displaystyle z:B(\ell \ell (x,y))} then  S u c ( z ) : B ( ℓ ℓ ( x , y ) ) {\displaystyle {\mathsf {Suc}}(z):B(\ell \ell (x,y))} .

## Example 2

[edit]

A simple common example is the Universe à la Tarski type former. It creates some inductive type  U : T y p e {\displaystyle U:{\mathsf {Type}}} and some inductive predicate  T : U → T y p e {\displaystyle T:U\to {\mathsf {Type}}} . For every type in the type theory (except  U {\displaystyle U} itself!), there will be some element of  U {\displaystyle U} which may be seen as some code for this corresponding type; The predicate  T {\displaystyle T} inductively encodes each possible type to the corresponding element of  U {\displaystyle U} ; and constructing new codes in  U {\displaystyle U} will require referring to the decoding-as-type of earlier codes, via the predicate  T {\displaystyle T} .

## See also

[edit]

* Induction-recursion – for simultaneously declaring some inductive type and some recursive function on this type .

## References

[edit]

1. ^ Dybjer, Peter (June 2000). "A general formulation of simultaneous inductive-recursive definitions in type theory" (PDF). Journal of Symbolic Logic. 65 (2): 525–549\. CiteSeerX 10.1.1.6.4575. doi:10.2307/2586554. JSTOR 2586554. S2CID 18271311.

## External links

[edit]

* A list of Peter Dybjer's publications on induction and induction-recursion