nLab implication



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


(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 natural deduction

In natural deduction the inference rules for implication are given as

ΓPpropΓQpropΓPQpropΓPpropΓ,PtrueQtrueΓPQtrueΓPQtrueΓ,PtrueQtrue\frac{\Gamma \vdash P \; \mathrm{prop} \quad \Gamma \vdash Q \; \mathrm{prop}}{\Gamma \vdash P \to Q \; \mathrm{prop}} \qquad \frac{\Gamma \vdash P \; \mathrm{prop} \quad \Gamma, P \; \mathrm{true} \vdash Q \; \mathrm{true}}{\Gamma \vdash P \to Q \; \mathrm{true}} \qquad \frac{\Gamma \vdash P \to Q \; \mathrm{true}}{\Gamma, P \; \mathrm{true} \vdash Q \; \mathrm{true}}

In type theory

In type theory

\phantom{-}symbol\phantom{-}\phantom{-}in logic\phantom{-}
A\phantom{A}\inA\phantom{A}element relation
A\phantom{A}:\,:A\phantom{A}typing relation
A\phantom{A}\vdashA\phantom{A}A\phantom{A}entailment / sequentA\phantom{A}
A\phantom{A}\topA\phantom{A}A\phantom{A}true / topA\phantom{A}
A\phantom{A}\botA\phantom{A}A\phantom{A}false / bottomA\phantom{A}
A\phantom{A}\LeftrightarrowA\phantom{A}logical equivalence
A\phantom{A}\neqA\phantom{A}negation of equality / apartnessA\phantom{A}
A\phantom{A}\notinA\phantom{A}negation of element relation A\phantom{A}
A\phantom{A}¬¬\not \notA\phantom{A}negation of negationA\phantom{A}
A\phantom{A}\existsA\phantom{A}existential quantificationA\phantom{A}
A\phantom{A}\forallA\phantom{A}universal quantificationA\phantom{A}
A\phantom{A}\wedgeA\phantom{A}logical conjunction
A\phantom{A}\veeA\phantom{A}logical disjunction
symbolin type theory (propositions as types)
A\phantom{A}\toA\phantom{A}function type (implication)
A\phantom{A}×\timesA\phantom{A}product type (conjunction)
A\phantom{A}++A\phantom{A}sum type (disjunction)
A\phantom{A}00A\phantom{A}empty type (false)
A\phantom{A}11A\phantom{A}unit type (true)
A\phantom{A}==A\phantom{A}identity type (equality)
A\phantom{A}\simeqA\phantom{A}equivalence of types (logical equivalence)
A\phantom{A}\sumA\phantom{A}dependent sum type (existential quantifier)
A\phantom{A}\prodA\phantom{A}dependent product type (universal quantifier)
symbolin linear logic
A\phantom{A}\multimapA\phantom{A}A\phantom{A}linear implicationA\phantom{A}
A\phantom{A}\otimesA\phantom{A}A\phantom{A}multiplicative conjunctionA\phantom{A}
A\phantom{A}\oplusA\phantom{A}A\phantom{A}additive disjunctionA\phantom{A}
A\phantom{A}&\&A\phantom{A}A\phantom{A}additive conjunctionA\phantom{A}
A\phantom{A}\invampA\phantom{A}A\phantom{A}multiplicative disjunctionA\phantom{A}
A\phantom{A}!\;!A\phantom{A}A\phantom{A}exponential conjunctionA\phantom{A}

Last revised on November 13, 2023 at 14:51:35. See the history of this page for a list of all contributions to it.