nLab intensional type theory



Type theory

natural deduction metalanguage, practical foundations

  1. type formation rule
  2. term introduction rule
  3. term elimination rule
  4. computation rule

type theory (dependent, intensional, observational type theory, homotopy type theory)

syntax object language

computational trinitarianism =
propositions as types +programs as proofs +relation type theory/category theory

logiccategory theorytype theory
trueterminal object/(-2)-truncated objecth-level 0-type/unit type
falseinitial objectempty type
proposition(-1)-truncated objecth-proposition, mere proposition
proofgeneralized elementprogram
cut rulecomposition of classifying morphisms / pullback of display mapssubstitution
cut elimination for implicationcounit for hom-tensor adjunctionbeta reduction
introduction rule for implicationunit for hom-tensor adjunctioneta conversion
logical conjunctionproductproduct type
disjunctioncoproduct ((-1)-truncation of)sum type (bracket type of)
implicationinternal homfunction type
negationinternal hom into initial objectfunction type into empty type
universal quantificationdependent productdependent product type
existential quantificationdependent sum ((-1)-truncation of)dependent sum type (bracket type of)
equivalencepath space objectidentity type/path type
equivalence classquotientquotient type
inductioncolimitinductive type, W-type, M-type
higher inductionhigher colimithigher inductive type
-0-truncated higher colimitquotient inductive type
coinductionlimitcoinductive type
presettype without identity types
completely presented setdiscrete object/0-truncated objecth-level 2-type/set/h-set
setinternal 0-groupoidBishop set/setoid
universeobject classifiertype of types
modalityclosure operator, (idempotent) monadmodal type theory, monad (in computer science)
linear logic(symmetric, closed) monoidal categorylinear type theory/quantum computation
proof netstring diagramquantum circuit
(absence of) contraction rule(absence of) diagonalno-cloning theorem
synthetic mathematicsdomain specific embedded programming language

homotopy levels




Intensional type theory is the flavor of type theory in which identity types are not necessarily propositions (that is, (-1)-truncated). Martin-Löf‘s original definition of identity types, and the equivalent formulation as an inductive type, are by default “intensional”; one has to impose extra axioms or rules in order to get extensional type theory (in which identity types are propositions).

In particular, homotopy type theory is intensional, because identity types represent path objects.

Note that some type theorists use “intensional type theory” to refer to type theories which fail to satisfy function extensionality. This is in general an orthogonal requirement to how we are using the term here.


The origin of the names “extensional” and “intensional” is somewhat confusing. In fact they refer to the behavior of the definitional equality. The idea is that the identity type is always an “extensional” notion of equality (although it can be more or less extensional, depending on whether further extensionality principles like function extensionality and univalence hold). Thus, if the definitional equality coincides with the identity type, the former is also extensional, and so we call the type theory “extensional” — while if the two equalities do not coincide, then the definitional equality has room to be more intensional than the identity type, and so we call the type theory “intensional”. (On this historical reading, “extensional type theory” should refer only to definitionally extensional type theory with the reflection rule, which is much stronger than merely requiring all types to be h-sets.)



Only the intensional but not the extensional Martin-Löf type theory has decidable type checking. (Martin-Löf 75, Hofmann 95).


  • CiC?


Last revised on September 1, 2022 at 05:09:09. See the history of this page for a list of all contributions to it.