nLab deductive system

Deductive systems


Deduction and Induction

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

logicset theory (internal logic of)category theorytype theory
predicatefamily of setsdisplay morphismdependent type
proofelementgeneralized elementterm/program
cut rulecomposition of classifying morphisms / pullback of display mapssubstitution
introduction rule for implicationcounit for hom-tensor adjunctionlambda
elimination rule for implicationunit for hom-tensor adjunctionapplication
cut elimination for implicationone of the zigzag identities for hom-tensor adjunctionbeta reduction
identity elimination for implicationthe other zigzag identity for hom-tensor adjunctioneta conversion
truesingletonterminal object/(-2)-truncated objecth-level 0-type/unit type
falseempty setinitial objectempty type
proposition, truth valuesubsingletonsubterminal object/(-1)-truncated objecth-proposition, mere proposition
logical conjunctioncartesian productproductproduct type
disjunctiondisjoint union (support of)coproduct ((-1)-truncation of)sum type (bracket type of)
implicationfunction set (into subsingleton)internal hom (into subterminal object)function type (into h-proposition)
negationfunction set into empty setinternal hom into initial objectfunction type into empty type
universal quantificationindexed cartesian product (of family of subsingletons)dependent product (of family of subterminal objects)dependent product type (of family of h-propositions)
existential quantificationindexed disjoint union (support of)dependent sum ((-1)-truncation of)dependent sum type (bracket type of)
logical equivalencebijection setobject of isomorphismsequivalence type
support setsupport object/(-1)-truncationpropositional truncation/bracket type
n-image of morphism into terminal object/n-truncationn-truncation modality
equalitydiagonal function/diagonal subset/diagonal relationpath space objectidentity type/path type
completely presented setsetdiscrete object/0-truncated objecth-level 2-type/set/h-set
setset with equivalence relationinternal 0-groupoidBishop set/setoid with its pseudo-equivalence relation an actual equivalence relation
equivalence class/quotient setquotientquotient type
inductioncolimitinductive type, W-type, M-type
higher inductionhigher colimithigher inductive type
-0-truncated higher colimitquotient inductive type
coinductionlimitcoinductive type
presettype without identity types
set of truth valuessubobject classifiertype of propositions
domain of discourseuniverseobject classifiertype universe
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




The basis of it all

 Set theory

set theory

Foundational axioms

foundational axioms

Removing axioms

Deductive systems


In logic, type theory, and the foundations of mathematics, a deductive system (or, sometimes, inference system) is specified by

  1. A collection of judgments, and
  2. A collection of steps, each of which has a (typically finite) list of judgments as hypotheses and a single judgment as conclusion. A step is usually written as
    J 1J nJ \frac{J_1 \quad \cdots \quad J_n}{J}

    If n=0n=0, a step is often called an axiom. In set theory, if n>0n \gt 0, a step is usually called an axiom schema.

Usually, one generates the steps by using inference rules, which are schematic ways of describing collections of steps, generally involving metavariables.


This use of the terminology “deductive system” is not completely standard, but it is not uncommon, and we need some name by which to refer to this general notion.


In the concrete algebraic theory of groups, the judgments are formal equations between terms built out of variables and the symbols ee, \cdot, and () 1(-)^{-1}. Thus, for instance, xe=xx\cdot e = x and x=yx 1x = y \cdot x^{-1} are judgments.

The rules of inference express, among other things, that equality is a congruence relative to the “operations”. For instance, there is a rule

a=ab=bab=ab \frac{a=a' \quad b=b'}{a\cdot b = a'\cdot b'}

where aa, bb, etc. are metavariables. Substituting particular terms for these metavariables produces a step which is an instance of this rule.

Proof trees and theorems

A proof tree in a deductive system is a rooted tree whose edges are labeled by judgments and whose nodes are labeled by steps. We usually draw these like so:

J 1J 2 J 3J 4 J 5 J 6 \array{\arrayopts{\rowlines{solid}} \array{\arrayopts{\rowlines{solid}} J_1 \quad J_2 \\ J_3} \quad \array{\arrayopts{\rowlines{solid}} J_4 \\ J_5} \\ J_6 }

(To draw such trees on the nLab, see the HowTo for a hack using the array command. For LaTeX papers, there is the mathpartir package.)

If there is a proof tree with root JJ and no leaves (which means that every branch must terminate in an axiom), we say that JJ is a theorem and write

J.\vdash J.

More generally, if there is a proof tree with root JJ and leaves J 1,,J nJ_1,\dots, J_n, we write

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

This is equivalent to saying that JJ is a theorem in the extended deductive system obtained by adding J 1,,J nJ_1,\dots,J_n as axioms.


This use of \vdash to express a statement about the deductive system should be distinguished from its use in particular deductive systems as a syntactic ingredient in judgments. For instance, in sequent calculus the judgments are sequents, which are sequences of statements connected by a turnstile \vdash. Similarly, in type theory and natural deduction one often uses \vdash inside a single judgment when that judgment is of a hypothetical sort. However, when using a logical framework, these two meanings of \vdash become essentially identified.

Formal systems

Depending on the strength of the metalanguage used to define the judgments and steps, simply having a deductive system does not in itself necessarily yield an effective procedure for enumerating valid proof trees and theorems. Deductive systems which do yield such an enumeration are sometimes referred to as formal systems. For example, Gödel’s incompleteness theorems are statements about formal systems in this sense. It is worth keeping in mind that more general deductive systems are considered in proof theory and type theory, typically because by side-stepping these coding issues one can give a simpler account of computational phenomena such as cut-elimination. A well-known example of such a so-called “semi-formal system” is first order arithmetic with the ω-rule?, used by Schütte in order to simplify Gentzen’s proof that the consistency of first-order arithmetic may be reduced to well-foundedness of the ordinal ϵ 0\epsilon_0.

Examples and special cases

Last revised on May 25, 2024 at 16:23:06. See the history of this page for a list of all contributions to it.