Math 2.0

Mathematical logic and foundations Definition

Inductive type

Builds on Type theoryDependent typeMathematical induction

Definition

Work in a dependent type theory with function types and a universe of types. An inductive type TT is declared by a finite list of constructors c1,…,ckc_1, \dots, c_k. Each constructor has a type of the form ci:Ai,1→⋯→Ai,mi→Tc_i : A_{i,1} \to \cdots \to A_{i,m_i} \to T. The declaration must satisfy strict positivity. This means that each argument type Ai,jA_{i,j} either does not mention TT, or has the form B1→⋯→Br→TB_1 \to \cdots \to B_r \to T where no BlB_l mentions TT. The declaration adds the following rules.

  1. Formation: TT is a type.
  2. Introduction: each cic_i is a term of its declared type.
  3. Elimination: for every type family PP over TT, a function f:Πx:TP(x)f : \Pi_{x : T} P(x) is given by one case for each constructor. In the case of cic_i, the value at ci a1⋯amic_i\, a_1 \cdots a_{m_i} may use the values of ff at the arguments aja_j of type TT.
  4. Computation: f(ci a1⋯ami)f(c_i\, a_1 \cdots a_{m_i}) reduces to the case of cic_i applied to a1,…,amia_1, \dots, a_{m_i} and to those values of ff.

Remarks

Example: the natural numbers are the inductive type ℕ\N with constructors 𝗓𝖾𝗋𝗈:ℕ\mathsf{zero} : \N and 𝗌𝗎𝖼𝖼:ℕ→ℕ\mathsf{succ} : \N \to \N. Strict positivity holds, since the only argument of 𝗌𝗎𝖼𝖼\mathsf{succ} is ℕ\N itself. Rule 3 is the induction principle: to give f:Πn:ℕP(n)f : \Pi_{n : \N} P(n) one gives f(𝗓𝖾𝗋𝗈):P(𝗓𝖾𝗋𝗈)f(\mathsf{zero}) : P(\mathsf{zero}) and, for each nn, f(𝗌𝗎𝖼𝖼 n):P(𝗌𝗎𝖼𝖼 n)f(\mathsf{succ}\, n) : P(\mathsf{succ}\, n) computed from nn and f(n)f(n).

Non-example: a type DD with one constructor 𝗅𝖺𝗆:(D→D)→D\mathsf{lam} : (D \to D) \to D is rejected. The argument type D→DD \to D mentions DD to the left of an arrow, so strict positivity fails. Accepting DD would allow the term (λx. x x)(λx. x x)(\lambda x.\, x\, x)(\lambda x.\, x\, x) of the untyped lambda calculus to be encoded, which gives a term of type DD with no normal form. A similar type with a constructor (T→⊥)→T(T \to \bot) \to T, where ⊥\bot is the empty type, would give a closed term of ⊥\bot, that is, a proof of falsity.

Other standard examples are lists, with 𝗇𝗂𝗅\mathsf{nil} and 𝖼𝗈𝗇𝗌\mathsf{cons}, and binary trees. Inductive families, such as vectors of a given length, allow the constructors to target different instances T(a)T(a) of a type family.

Reading path

To understand this page from the ground up, read these 25 pages in order. The foundations come first.

Show the path as a graph
Element, definition, no evidence levelElementdefinitionIntuitionistic logic, concept, no evidence levelIntuitionistic logicconceptLambda calculus, concept, no evidence levelLambda calculusconceptMathematical induction, concept, no evidence levelMathematical inductionconceptProposition, concept, no evidence levelPropositionconceptSet, concept, no evidence levelSetconceptSet, definition, no evidence levelSetdefinitionConjunction, definition, no evidence levelConjunctiondefinitionDisjunction, definition, no evidence levelDisjunctiondefinitionImplication, definition, no evidence levelImplicationdefinitionNegation, definition, no evidence levelNegationdefinitionBiconditional, definition, no evidence levelBiconditionaldefinitionTruth table, concept, no evidence levelTruth tableconceptModus ponens, concept, no evidence levelModus ponensconceptMathematical proof, concept, no evidence levelMathematical proofconceptPropositional logic, concept, no evidence levelPropositional logicconceptTautology, definition, no evidence levelTautologydefinitionLogical equivalence, definition, no evidence levelLogical equivalencedefinitionDouble negation law, statement, no evidence levelDouble negation lawstatementProof by contradiction, concept, no evidence levelProof by contradictionconceptRussell's paradox, statement, no evidence levelRussell's paradoxstatementType theory, concept, no evidence levelType theoryconceptCurry–Howard correspondence, concept, no evidence levelCurry–Howard correspo…conceptDependent type, concept, no evidence levelDependent typeconceptInductive type, definition, no evidence levelInductive typedefinition
Each page uses the pages above it. The colour of the bar on a box shows how strong the evidence is, and the box also gives it as text. The list has the same pages.
  • no evidence level
  1. Element definition
  2. Intuitionistic logic concept
  3. Lambda calculus concept
  4. Mathematical induction concept
  5. Proposition concept
  6. Set concept
  7. Set definition
  8. Conjunction definition
  9. Disjunction definition
  10. Implication definition
  11. Negation definition
  12. Biconditional definition
  13. Truth table concept
  14. Modus ponens concept
  15. Mathematical proof concept
  16. Propositional logic concept
  17. Tautology definition
  18. Logical equivalence definition
  19. Double negation law statement
  20. Proof by contradiction concept
  21. Russell's paradox statement
  22. Type theory concept
  23. Curry–Howard correspondence concept
  24. Dependent type concept
  25. Inductive type definition

Further reading

  1. Web https://en.wikipedia.org/wiki/Inductive_type
About this page
TagDKRTRRG3V4
URIm2://DKRTRRG3V4
Kinddefinition
WritingW0 stub
MSC03B38, 68N15
DefinesInductive type
UsesType theory, Dependent type, Mathematical induction
Changed3 November 2026

Markdown · JSON · Edit on GitHub

What this page needs for W1

  • a source with a locator (0 of 1)

The writing levels say how complete the text of a page is. They do not measure its truth.

What links here

No page links to this page yet.