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




In formal logic, a metalanguage is a language (formal or informal) in which the symbols and rules for manipulating another (formal) language – the object language – are themselves formulated. That is, the metalanguage is the language used when talking about the object language.

For instance the symbol ϕ\phi may denote a proposition in a deductive system, but the statement “ϕ\phi can be proven” is not itself a proposition in the deductive system, but a statement in the metalanguage, often denoted by a sequent of the form

ϕtrue \vdash \phi \, true

and then called a judgement instead (in type theory one might also omit the “truetrue”, see at propositions-as-types for details on this). Or, more generally, if the truth of ϕ\phi depends on the truth of some other proposition ψ\psi then

ψtrueϕtrue \psi \, true \vdash \phi \, true

is the hypothetical judgement in the metalanguage that there is a proof of ϕ\phi in the context in which ψ\psi is assumed.

In contrast, the implication expression (ψϕ)(\psi \to \phi) may denote another proposition in the object language, a conditional statement. A deduction theorem connects the two, in that it says that if the judgement

ψtrueϕtrue \psi \, true \vdash \phi \, true

holds in the metalanguage, then the judgement

(ψϕ)true \vdash (\psi \to \phi) \, true

may be deduced; the converse is the rule of modus ponens. (Actually, both the deduction theorem and modus ponens are slightly more general, being relativized to an arbitrary context, but we needn't get into that here.)



Detailed discussion of the difference between judgements in the metalanguage and propositions in the object language is in the foundational lectures

  • Per Martin-Löf, On the meaning of logical constants and the justifications of the logical laws, leture series in Siena (1983) (web)

Last revised on February 24, 2014 at 12:32:06. See the history of this page for a list of all contributions to it.