nLab judgment



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





In formal logic, a judgment, or judgement, is a “meta-proposition”; that is, a proposition belonging to the meta-language (the deductive system or logical framework) rather than to the object language.

More specifically, any deductive system includes, as part of its specification, which strings of symbols are to be regarded as the judgments. Some of these symbols may themselves express a proposition in the object language, but this is not necessarily the case.

The interest in judgements is typically in how they may arise as theorems, or as consequences of other judgements, by way of the deduction rules in a deductive system. One writes

J\vdash J

to mean that JJ is a judgment that is derivable, i.e. a theorem of the deductive system.


In first-order logic

In first-order logic, a paradigmatic example of a judgement is the judgement that a certain string of symbols is a well-formed proposition. This is often written as “PpropP \;prop”, where PP is a metavariable standing for a string of symbols that denotes a proposition.

Another example of a judgement is the judgement that these symbols form a proposition proved to be true. This judgment is often written as “PtrueP\;true”.

Neither of these judgements is the same thing as the proposition PP itself. In particular, the proposition is a statement in the logic, while the judgement that the proposition is a proposition, or is provably true, is a statement about the logic. However, often people abuse notation and conflate a proposition with the judgment that it is true, writing PP instead of PtrueP\;true.

In type theory

The distinction between judgements and propositions is particularly important in intensional type theory.

The paradigmatic example of a judgment in type theory is a typing judgment. The assertion that a term tt has type AA (written “t:At:A”) is not a statement in the type theory (that is, not something which one could apply logical operators to in the type-theoretic system) but a statement about the type theory.

Often, type theories include only a particular small set of judgments, such as:

  • typing judgments (written t:At:A, as above)
  • judgments of typehood (usually written AtypeA \;type)
  • judgments of equality between typed terms (written say (t=t):A(t=t'):A)

(In a type theory with a type of types, judgments of typehood can sometimes be incorporated as a special case of typing judgments, writing A:TypeA:Type instead of AtypeA\;type.)

These limited sets of judgments are often defined inductively by giving type formation/term introduction/term elimination- and computation rules (see natural deduction) that specify under what hypotheses one is allowed to conclude the given judgment.

These inductive definitions can be formalized by choosing a particular type theory to be the meta-language; usually a very simple type theory suffices (such as a dependent type theory with only dependent product types). Such a meta-type-theory is often called a logical framework.

Hypothetical and generic judgments

It may happen that a judgment JJ is only derivable under the assumptions of certain other judgments J 1,,J 2J_1,\dots, J_2. In this case one writes

J 1,,J nJ. J_1,\dots,J_n \;\vdash J.

Often, however, it is convenient to incorporate hypotheticality into judgments themselves, so that J 1,,J nJ J_1,\dots,J_n \;\vdash J becomes a single hypothetical judgment. It can then be a consequence of other judgments, or (more importantly) a hypothesis used in concluding other judgments. For instance, in order to conclude the truth of an implication ϕψ\phi\Rightarrow\psi, we must conclude ψ\psi assuming ϕ\phi; thus the introduction rule for implication is

ϕψϕψ \frac{\phi \;\vdash\; \psi}{\vdash\; \phi\Rightarrow\psi}

with a hypothetical judgment as its hypothesis. See natural deduction for a more extensive discussion.

In a type theory, we may also consider the case where the hypotheses J 1J_1 are typing judgments of the form x:Ax:A, where xx is a variable, and in which the conclusion judgment JJ involves these variables as free variables. For instance, JJ could be ϕprop\phi\;prop, where ϕ\phi is a valid (well-formed) proposition only when xx has a specific type XX. In this case we have a generic judgement, written

(x:X)(ϕprop). (x \colon X) \;\vdash\; (\phi \; prop).

which expresses that assuming the hypothesis or antecedent judgement that xx is of type XX, as a consequence we have the succedent judgement that ϕ\phi is a proposition. If on the right here we have a typing judgment

(x:X)(t:A) (x \colon X) \;\vdash\; (t \colon A)

we have a term in context.

For more about the precise relationship between the various meanings of \vdash here, see natural deduction and logical framework.

While this may seem to be a very basic form of (hypothetical/generic) judgement only, in systems such as dependent type theory or homotopy type theory, all of logic and a good bit more is all based on just this.


Foundational discussion of the notion of judgement in formal logic is in

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

  • Per Martin-Löf, A path from logic to metaphysics, talk at Nuovi problemi della logica e della filosofia della scienza, Jan 1990 (pdf)

More on this is in in sections 2 and 3 of

  • Frank Pfenning, Rowan Davies, A judgemental reconstruction of modal logic (2000) (pdf)

A textbook acccount is in section I.3 of

Something called judgement (Urteil) appears in

Last revised on November 17, 2019 at 17:06:16. See the history of this page for a list of all contributions to it.