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
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
equivalence classquotientquotient type
inductioncolimitinductive type, W-type, M-type
higher inductionhigher colimithigher inductive type
completely presented setdiscrete object/0-truncated objecth-level 2-type/preset/h-set
setinternal 0-groupoidBishop set/setoid
universeobject classifiertype of types
modalityclosure operator, (idemponent) 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




In logic, decidable refers to the question of whether there is an effective method for deciding membership in a set of formulas (or judgments in type theory). Here we take an effective method to be given by any of the equivalent formal characterizations (general recursion?, Turing machine?s, lambda calculus) that according to the Church-Turing thesis capture the informal notion.

Sometimes decidable is also used in another sense, namely that of independent statement?, according to which a logical theory decides a formula if it proves the formula or its negation (see at decidable proposition), and according to which a formula is undecidable (independent) if the theory in question proves neither the formula nor its negation. This is the sense in which the continuum hypothesis in undecidable from the axioms of ZFC and in which the consistency statement? of a sufficiently strong, recursively enumerated theory is undecidable in (independent of) that theory, according to Gödel’s second incompleteness theorem?. To avoid confusion, the preferred term to use here is independent?.

Decidability of a logical system

A logical system is decidable if there is an algorithm deciding whether a given formula is a theorem of the system.

In this sense, propositional logic and monadic predicate logic? are decidable, whereas first-order logic and higher-order logic are undecidable

Decidability of a theory

A theory is a set of formulas closed under logical consequence (in some logical system, usually first order logic with a given signature). A theory is decidable if there is an algorithm (effective method) deciding whether a formula is a member of the theory of not. In the usual case where the theory is presented from a list of axioms, the question is whether the formula is deducible from the axioms.

Examples of decidable theories include:

Examples of undecidable theories include:

  • Peano arithmetic (considered as either a first-order or a second-order theory)
  • the first-order theory of groups

In the context of type theory

Type theory gives rise a number of decision problems, and it is generally desirable that these are solvable.

Type checking

Type checking? refers to the problem whether the judgment Γa:A\Gamma\vdash a : A is derivable in a given type theory. For instance, intensional type theory has decidable type checking, but extensional type theory, which adds the rule of equality reflection?, does not. For an exposition of this result, see the thesis of Hofmann.

In more expressive type theories, we can also ask whether judgmental equality (also called computational or definitional equality) is decidable. Since deciding the judgmental equality is often a prerequisite for deciding type checking, systems with decidable type checking often have decidable judgmental equality.


Typeability? refers to the problem of deciding for a given term whether it inhabits some type. Simple type theory has decidable typeability, and the programming language ML?, which features a weak form of polymorphism, let polymorphism?, also has decidable typeability.

dependent type theory has undecidable typeability.

Type inhabitation

Type inhabitation? refers to the problem of deciding for a given type whether there is a term that inhabits it. Under the propositions-as-types correspondence, this incorporates the question of the decidability of the corresponding logic since a proposition is provable if and only if the the type of its proofs is inhabited.

For simple type theory, type inhabitation is decidable, whereas it is undecidable for dependent type theory.


  • Wikipedia, Decidablility (logic)

  • Martin Hofmann, Extensional concepts in intensional type theory, Ph.D. dissertation, University of Edinburgh (1995). (link)

Revised on February 2, 2016 13:01:23 by Todd Trimble (