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
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


(0,1)(0,1)-Category theory



An implication may be either an entailment or a conditional statement; these are closely related but not quite the same thing.

  1. Entailment is a preorder on propositions within a given context in a given logic.

    We say that pp entails qq syntactically, written as a sequent pqp \vdash q, if qq can be proved from the assumption pp.

    We say that pp entails qq semantically, written pqp \vDash q, if qq holds in every model in which pp holds.

    (These relations are often equivalent, by various soundness? and completeness theorems.)

  2. A conditional statement is the result of a binary operation on propositions within a given context in a given logic. If pp and qq are propositions in some context, then so is the conditional statement pqp \to q, at least if the logic has a notion of conditional.

Notice that pp, qq, and pqp \to q are all statements in the object language (the language that we are talking about), whereas the hypothetical judgements pqp \vdash q and pqp \vDash q are statements in the metalanguage (the language that we are using to talk about the object language).

Relations between the definitions

Depending on what logic one is using, pqp \to q might be anything, but it's probably not fair to consider it a conditional statement unless it is related to entailment as follows:

If, in some context, pp entails qq (either syntactically or semantically), then pqp \to q is a theorem (syntactically) or a tautology (semantically) in that context, and conversely.

In particular, this holds for classical logic and intuitionistic logic.

You can think of entailment as being an external hom (taking values in the poset of truth values) and the conditional as being an internal hom (taking values in the poset of propositions). In particular, we expect these to be related as in a closed category:

  • qr(pq)(pr) q \to r \vdash (p \to q) \to (p \to r) ,
  • pp p \equiv \top \to p ,
  • pp \top \vdash p \to p ,

where \top is an appropriate constant statement (often satisfying pp \vdash \top, although not always, as in linear logic with \multimap for \to and 11 for \top).

Most kinds of logic used in practice have a notion of entailment from a list of multiple premises; then we expect entailment and the conditional to be related as in a closed multicategory.

Just as we may identify the internal and external hom in Set, so we may identify the entailment and conditional of truth values. In the nnLab, we tend to write this as \Rightarrow, a symbol that is variously used by other authors in place of \vdash, \vDash, and \rightarrow.

In various formalizations

In Heyting algebras

Although Heyting algebras were first developed as a way to discuss intuitionistic logic, they appear in other contexts; but their characterstic feature is that they have an operation analogous to the conditional operation in logic, usually called Heyting implication and denoted \rightarrow or \Rightarrow. If you use \to and replace \vdash above with the Heyting algebra's partial order \leq, then everything above applies.

In type theory

In type theory

Revised on April 23, 2017 11:31:36 by Urs Schreiber (