Induction-induction

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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:𝖳𝗒𝗉𝖾 are allowed to refer to the predicate B:A𝖳𝗒𝗉𝖾.

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 | edit source]

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

  • aa:A
  • :x:AB(x)A;

and-simultaneously present the predicate B as having the following constructors :

  • 𝖳𝗋𝗎:B(aa)
  • 𝖥𝖺𝗅:B(aa)
  • if x:A and y:B(x) then 𝖹𝖾𝗋:B((x,y))
  • if x:A and y:B(x) and z:B((x,y)) then 𝖲𝗎𝖼(z):B((x,y)).

Example 2

[edit | edit source]

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

See also

[edit | edit source]
  • Induction-recursion – for simultaneously declaring some inductive type and some recursive function on this type .

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
[edit | edit source]