diagonal argument

#Contents#
* table of contents
{:toc}

## Idea

Diagonal arguments are typically arguments that place limitations on the extent that a set $T$ can "talk about" attributes of elements of $T$. They are related to the paradoxes of old (e.g., the [[liar paradox]], [[Russell's paradox]]) that typically involve some degree of self-reference.

Traditional "diagonal arguments" enter the proofs of, for example,

* [[Cantor's theorem]]

* [[Gödel]]'s [[incompleteness theorem]]

* [[halting theorem]]

but also the traditional construction of a

* [[fixed-point combinator]]

due to [[Haskell Curry]].

As explained by [Yanofsky](#Yan) (after Lawvere), each of these diagonal arguments can be viewed as instances of the

* [[Lawvere fixed point theorem]]

which places limitations on how a set $T$ can self-describe $Y$-valued attributes of $T$ (a set $Y^T$) via a function $T \to Y^T$, or via a function $T \times T \to Y$. The name comes from a construction that involves the [[diagonal map]] $T \to T \times T$.

## Link

* Wikipedia, _[Diagonal argument](http://en.wikipedia.org/wiki/Diagonal_argument)_

## References

Cantor used a diagonal argument to show that $|X|\ncong|2^X|$ for the first time here:

* [[Georg Cantor]], _Über eine elementare Frage der Mannigfaltigskeitslehre_ , Jahresbericht DMV **1** (1891) pp.75-78. ([gdz](http://gdz.sub.uni-goettingen.de/dms/load/img/?PID=GDZPPN002113910))

But he was anticipated by

* Paul Du Bois-Reymond, _Über asymptotische Werthe, infinitäre Approximationen und infinitäre Auflösung von Gleichungen_ , Math. Ann. **8** (1874) pp.363-414. ([gdz](http://gdz.sub.uni-goettingen.de/dms/load/img/?PID=GDZPPN002243067))

Lawvere's seminal ideas occurred in

* [[F. William Lawvere]], *Diagonal arguments and cartesian closed categories*, pp.134-145 in *Category Theory, Homology Theory and their Applications II (Battelle Institute Conference, Seattle, Wash., 1968, Vol. Two)*, Springer LNM **92** Berlin 1969. (Reprinted with an author's comment as TAC reprint **15** (2006): [link](http://www.tac.mta.ca/tac/reprints/articles/15/tr15abs.html))

For a leisurely account see the discussion in

* [[F. William Lawvere]], [[Stephen Schanuel]], *Conceptual Mathematics*, Cambridge University Press 1997.

A discussion of logic and rigor using Lawvere's ideas about the diagonal argument and Godel theorem

* Misha Gromov. [*Ergostuctures, Ergologic and the Universal Learning Problem: Chapters 1, 2.*, p.14-18.](https://www.ihes.fr/~gromov/wp-content/uploads/2018/08/ergologic31.pdf#17)
2013.

A nice overview is

* {#Yan}  [[Noson Yanofsky]], _A Universal Approach to Self-Referential Paradoxes, Incompleteness and Fixed Points_, 2003  ([arXiv:0305282](http://arxiv.org/abs/math/0305282))

The necessary assumptions for Lawvere's account are reduced in various ways in

* [[David Michael Roberts]], _Substructural fixed-point theorems and the diagonal argument: theme and variations_,  Compositionality **5** issue 8 (2023) doi:[10.32408/compositionality-5-8](https://doi.org/10.32408/compositionality-5-8),
([arXiv:2110.00239](https://arxiv.org/abs/2110.00239))

[[!redirects diagonal arguments]]
[[!redirects diagonalization argument]]
[[!redirects diagonalization arguments]]

[[!redirects diagonal arguments]]


diagonal fill-in > history

< [[diagonal fill-in]]


diagonal function

\tableofcontents

## Definition

### In set theory

Given a [[set]] $X$, its diagonal function is a [[function]] from $X$ to its [[cartesian product|cartesian square]] $X^2$, often denoted $\Delta_X$, $\check{X}$, or an obvious variation.

Specifically, the __diagonal function__ of $X$ maps an element $a$ of $X$ to the pair $(a,a)$:
$$ \Delta_X = \{ a \mapsto (a,a) \} .$$
Note that this map is an [[injection]], so it defines a [[subset]] of $X^2$, also called the [[diagonal subset|diagonal]] of $X$; this is the origin of the term.

### In category theory

The concept can be generalised to any [[category]] in which the [[product]] $X^2$ exists; see [[diagonal morphism]].

A [[topological space]] $X$ is [[Hausdorff space|Hausdorff]] if and only if its diagonal function is a [[closed map]]; this fact can be generalised to other notions of [[space]].

The [[characteristic function]] of the diagonal function is the [[Kronecker delta]].

### In dependent type theory

In [[dependent type theory]], the **diagonal function** of a type $X$ is the function

$$\Delta_X \equiv \lambda x:X.(x, x, \mathrm{refl}_X(x)):X \to \sum_{x:X} \sum_{y:X} x =_X y$$

where $\sum_{x:X} \sum_{y:X} x =_X y$ is the [[homotopy pullback]] of the [[identity function]] along itself.

Diagonal functions are used in the [[elimination rules]] and [[computation rules]] for [[identity types]]:

The elimination rules for identity types states that given an element $z:\sum_{x:X} \sum_{y:X} x =_X y \vdash C(z)$, there is a dependent function

$$\mathrm{ind}_{=}^{X, C}:\left(\prod_{x:X} C(\Delta_X(x))\right) \to \prod_{z:\sum_{x:X} \sum_{y:X} x =_X y} C(z)$$

and the computation rules for identity types states that there are homotopies

$$\beta_{=}^{X, C}:\prod_{t:\prod_{x:X} C(\Delta_X(x))} \prod_{x:X} \mathrm{ind}_{=}^{X, C}(t, \Delta_X(x)) =_{C(\Delta_X(x))} t(x)$$

The canonical semantics of the diagonal function is the [[path space object]].

## See also

* [[equality]]

* [[diagonal subset]], [[diagonal relation]], [[diagonal morphism]]

* [[path space object]]

* [[identity type]]

[[!include types and logic - table]]

[[!redirects diagonal map]]


diagonal functor

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Category theory
+--{: .hide}
[[!include category theory - contents]]
=--
=--
=--

# The diagonal functor
* table of contents
{: toc}

## Idea

The diagonal functor is a [[categorification]] of the [[diagonal function]].

## Definitions

Let $C$ be a [[category]].  The __(binary) diagonal functor of $C$__ is the [[functor]] $\Delta\colon C \to C \times C$ given by $\Delta(x) = (x,x)$, regardless of whether $x$ is an [[object]] or an [[morphism|arrow]] of $C$.

More generally, let $J$ and $C$ be arbitrary categories.  The __$J$-ary diagonal
functor of $C$__ is the functor $\Delta_J\colon C\to C^J$ sending each
object $c$ to the [[constant functor]] $\Delta c$ (the functor having
value $c$ for each object of $J$ and value $1_c$ for each arrow of
$J$), and each arrow $f\colon c\to c'$ of $C$ to the [[natural transformation]] $\Delta f\colon \Delta c \stackrel{.}{\to} \Delta c'$
which has the same value $f$ at each object $j$ of $J$.

## Properties

Since $C$ is $J$-cocomplete ($J$-complete) iff $\Delta$ has a left
(right) [[adjoint functor|adjoint]], the general [[adjoint functor theorem]] may be
used in some cases to prove [[cocomplete category|cocompleteness]] ([[complete category|completeness]]).  For this
to work, $\Delta$ must at least preserve small [[limits]] ([[colimits]]).

+-- {: .un_prop}
###### Proposition

Let $P$ and $C$ be arbitrary categories. Then
$\Delta_P\colon C\to C^P$ preserves _all_ limits that exist in $C$.
=--

+-- {: .proof}
###### Proof

First, recall that limits in [[functor categories]] are
calculated pointwise. In some detail, if for an object
$p\in \mathrm{obj}(P)$
we write $E_p:X^P\to X$ for the ''evaluate at $p$'' functor (with
$E_p(H\colon P\to X)=H(p)$ and $E_p(\sigma\colon
H\stackrel{.}{\to} H')=\sigma_p\colon H(p)\to H'(p)$),
then we have the following fact (Theorem V.3.1 on p. 115 of
[[Categories Work]]):  If $S\colon
J\to X^P$ is such that for each object $p$ of $P$, $E_p S\colon J\to X$
has a limiting cone $\tau_p\colon L(p)\stackrel{.}{\to} E_p S$,
then there exists a unique functor $L$ with object function
$p\mapsto L(p)$ such that $\tilde{\tau}=\{\tilde{\tau}_{j,p}\}$ with
$\tilde{\tau}_{j,p}:=\tau_{p,j}$ is a cone
$\tilde{\tau}\colon \Delta_J(L)\stackrel{.}{\to} S$; moreover, this
$\tilde{\tau}$ is a limiting cone from $L\in \mathrm{obj}(X^P)$ to
$S\colon J\to X^P$.

Back to the proof of the proposition, let $F\colon J\to C$ be a
functor with a limiting cone
$\nu\colon \Delta_J(\ell) \stackrel{.}{\to} F$. We would like to show that $\Delta_P\nu\colon \Delta_P\circ \bigl(\Delta_J(\ell)\bigr) \stackrel{.}{\to} \Delta_P\circ F$ is a
limiting cone. Noting that $\Delta_P\circ \bigl(\Delta_J(\ell)\bigr)=\Delta_J(\Delta_P(\ell))$ (where the first
$\Delta_J$ is $C\to C^J$ and the second is $C^P\to (C^P)^J$), the last
cone may be written as $\Delta_P\nu\colon \Delta_J(\Delta_P(\ell))
\stackrel{.}{\to} \Delta_P\circ F$.

First, we note that for each object $p$ of $P$,
$E_p\circ(\Delta_P\circ F)$ is just $F$, and therefore has the limiting
cone $\nu\colon\ell \stackrel{.}{\to} F$ by assumption.  Hence, it is
clear that $\Delta_P\circ F$ has a limit, but we must verify that
$\Delta_P\nu$ is a limiting cone.

One functor $P\to X$ with object function $p\mapsto \ell$ is just
$\Delta_P(\ell)$. For this functor, we have our cone
$\Delta_P\nu\colon \Delta_J(\Delta_P(\ell))
\stackrel{.}{\to} \Delta_P\circ F$.  Since for all $j$ and $p$ we
have $(\Delta_P\nu)_{j,p}=\nu_j=j\text{th component of the limiting cone of
}E_p\circ(\Delta_P\circ F)$, we are done by the theorem
on pointwise limits.
=--

## Related concepts

* [[diagonal morphism]]

[[!redirects diagonal functor]]
[[!redirects diagonal functors]]
[[!redirects diagonal functors preserve limits]]


diagonal matrix

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Linear algebra
+-- {: .hide}
[[!include higher linear algebra - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

A [[square matrix]] $(A_{x,y})\in Mat_{n \times n}(R)$ whose values for $x\neq y$ are all [[zero]] is called a _diagonal matrix_.

## Examples

A diagonal matrix with value 1 on the diagonal is an [[identity matrix]].

## Properties

Diagonal matrices form the [[center]] of the ring of matrices under [[matrix multiplication]].

## Related concepts

* [[permutation matrix]]

* [[invertible matrix]]

* [[Smith normal form]]

## References

See also

* Wikipedia, _[Diagonal matrices](https://en.wikipedia.org/wiki/Diagonal_matrix)_

* Wikipedia, _[Diagonalizable matrix](https://en.wikipedia.org/wiki/Diagonalizable_matrix)_

[[!redirects diagonal matrices]]

[[!redirects diagonalizable matrix]]
[[!redirects diagonalizable matrices]]


diagonal morphism

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Category theory
+--{: .hide}
[[!include category theory - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Definition

The **diagonal** of an [[object]] $X$ in a [[category]] with [[Cartesian product]] is the canonical [[morphism]]

$$
  \Delta
    \;\colon\;
  X
    \stackrel{(Id,Id)}{\longrightarrow}
  X \times X
$$

which is induced, via the [[universal property]] of the [[Cartesian product]], by the [[span]] whose two legs each are both the [[identity morphism]] on $X$:

$$
  \array{
    && X
    \\
    &
      {}^{\mathllap{Id}}\swarrow
    &
      \downarrow
      {}^{\mathrlap{\Delta}}
    &
      \searrow^{\mathrlap{Id}}
    \\
    X
      &\underset{pr_1}{\longleftarrow}&
    X \times X
      &\underset{pr_2}{\longrightarrow}&
    X
  }
$$

The dual concept is _[[codiagonal]]_ .

In the absence of [[Cartesian products]], or when intentionally disregarding them, diagonal morphisms may still be considered in a generalized sense in [[monoidal categories with diagonals]].

## Details

Recall that the [[diagonal subset|diagonal]] of a [[set]] is a [[subset]] of its [[cartesian product|cartesian square]] $X^2$.  If $X$ is now an object in some [[cartesian monoidal category]] $C$, then the diagonal of $X$ is now a [[subobject]] of its [[product|categorial square]] $X^2$.  (Actually, $C$ need not be cartesian monoidal, as long as the product $X \times X$ exists.)

Specifically, the __diagonal morphism__ of $X$ is [[generalized the|the]] morphism $\Delta_X: X \to X^2$ to the [[cartesian product ]] of $X$ with itself given (using the [[universal property]] of the [[cartesian product]]) by the [[identity morphism]] from $X$ to itself, taken twice.  That is, $\Delta_X$ is the universal solution to
$$ \array {
                            &          & X \\
                            & \swarrow & \downarrow _ { \Delta _ X } & \searrow \\
   X                        &          & X ^ 2                       &          & X \\
   \downarrow _ { \id _ X } & \swarrow &                             & \searrow & \downarrow _ { \id _ X } \\
   X                        &          &                             &          & X
} $$
If $C$ is $Set$ (the [[category of sets]]), then this diagonal morphism is precisely the [[diagonal function]] of $X$.

## Properties

The diagonal morphism is always a [[regular monomorphism]], since it is the [[equaliser]] of the two projection maps $X^2 \to X$.  (In fact, it is a [[split monomorphism]], since it is also a [[section]] of either projection map.)  Thus, it makes $X$ into a regular [[subobject]] of $X^2$, the __diagonal subobject__.  When $C$ is the $Set$, this recovers the original notion of the [[diagonal subset]] of $X^2$.

In any category with binary [[pullbacks]], the [[kernel pair]] of the [[identity morphism]] $id$ on an object $X$ is the diagonal morphism $(id,id)$ of $X$, and has a [[coequalizer]] [[isomorphic]] to $X$ itself.

## Examples

In the category [[Set]] the diagonal $\Delta_X$ is the [[function]] $a \mapsto (a,a)$ for all $a \in X$. See [[diagonal subset]].

In the category [[Top]] of [[topological spaces]], an object $X$ is a [[Hausdorff space]] if and only if its diagonal subobject is a [[closed subspace]] of $X^2$; this fact can be generalised to other notions of [[space]].

In [[Cat]] the diagonal morphisms are [[diagonal functors]].

## Related concepts

* [[fat diagonal]]

* [[monoidal category with diagonals]]

* [[formal neighbourhood of the diagonal]]

* [[diagonal of a bisimplicial set]]

[[!redirects diagonal]]
[[!redirects diagonals]]

[[!redirects diagonal subobject]]
[[!redirects diagonal morphisms]]

[[!redirects diagonal map]]
[[!redirects diagonal maps]]


diagonal of a bisimplicial set

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Homotopy theory
+--{: .hide}
[[!include homotopy - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Definition

+-- {: .num_defn }
###### Definition
**(diagonal of a bisimplicial set)**

For $X_{\bullet,\bullet}$ a [[bisimplicial set]], its **diagonal** is the [[simplicial set]] that is the precomposition with the [[diagonal morphism|diagonal]] [[functor]] $(Id, Id) \colon \Delta^{op} \to \Delta^{op} \times \Delta^{op}$ on the [[opposite category|opposite]] of the [[simplex category]], i.e. the simplicial set with components:

$$
  \Delta(X)_n \;\coloneqq\; X_{n,n}
  \,.
$$
=--

## Properties
 {#Properties}

See at *[Bisimplicial set -- Properties -- Diagonal](bisimplicial+set#Diagonal)*.

## Related concepts

* [[diagonal morphism]]

* [[total complex]], [[totalization]]

* [[total simplicial set]], [[décalage]]

* [[Eilenberg-Zilber theorem]]

## References

* [[Antonio Cegarra]], [[Josué Remedios]], _The relationship between the diagonal and the bar constructions on a bisimplicial set_, Topology and its applications, volume 153 (1)  (2005) ([pdf](http://www.ugr.es/~acegarra/Paperspdfs/TRBDWC.pdf), [doi:10.1016/j.topol.2004.12.003](https://doi.org/10.1016/j.topol.2004.12.003))

* {#Stevenson11} [[Danny Stevenson]], pages 2 & 11 of: *Décalage and Kan's simplicial loop group functor*, Theory and Applications of Categories, Vol. 26, 2012, No. 28, pp 768-787 ([arXiv:1112.0474](https://arxiv.org/abs/1112.0474), [tac:26-28](http://www.tac.mta.ca/tac/volumes/26/28/26-28abs.html))

[[!redirects diagonals of bisimplicial sets]]


diagonal subset

Given a [[set]] $X$, its diagonal is a [[subset]] of its [[cartesian product|cartesian square]] $X^2$, often denoted $\Delta_X$, $I_X$, or an obvious variation.

Specifically, the __diagonal__ of $X$ consists of those pairs of the form $(a,a)$ for $a$ an element of $X$:
$$ \Delta_X = \{ (a,a) | a \in X \} .$$
The term "diagonal" arises because if we arrange the elements of $X^2$ in a [[matrix]] with the rows and columns labeled by elements of $X$ in the same order, then $\Delta_X$ consists precisely of entries along the diagonal of the matrix.

When intepreted as a [[binary relation]], $\Delta_X$ is the [[equality relation]] on $X$.  This relation is both [[functional relation|functional]] and [[entire relation|entire]]; when interpreted as a [[function]], it is the [[identity function]] on $X$.  Note that there is an obvious [[bijection]] $a \mapsto (a,a)$ from $X$ to $\Delta_X$; thus, we can also interpret the diagonal as a [[function]] from $X$ to $X^2$, called the [[diagonal function]].

The concept can be generalised to any [[category]] in which the [[product]] $X^2$ exists; see [[diagonal subobject]].

A [[topological space]] $X$ is [[Hausdorff space|Hausdorff]] if and only if its diagonal is a [[closed subspace]] of $X^2$; this fact can be generalised to other notions of [[space]].

The [[characteristic function]] of the diagonal subset is the [[Kronecker delta]].


diagonalizable group scheme

A *diagonalizable group scheme* $G$ over a ring $k$ is a group scheme satisfying the following equivalent conditions:

1. $G$ is the [[Cartier duality|Cartier dual]] of a [[constant sheaf|constant group scheme]].

1. $O(G)=hom(G,O_k)$ is a [[character|character group]] i.e. $O(G)$ is generated by morphisms $G\to \mu_k$ into the [[multiplicative group scheme]].

+-- {: .proof}
###### Proof
Let $H$ be a constant group scheme. Let $G=D(H)$ be its Cartier dual. By definition we have $D(H)(R)=hom_{Grp}(H\otimes_k R, \mu_R)\simeq hom_{Grp}(H,R^\times)\simeq hom_Alg(k[H],R)$ and hence $G=Spec\,k[H]$. Here $k[H]$ is the [[group algebra]] of $H$ and the last isomorphism is given by the adjunction called the universal property of group rings and each $\zeta\in H\subset k[H]$ is a character of $G$. Note that -as is any group algebra- $k[H]$ is a [[Hopf algebra]].

Conversely, if $G$ is affine and $O(G)$ generated by characters, let H
be the group of all characters of G; then the canonical map $k[H]\to O(G)$ is
surjective. But it is always injective (by [[Dedekind's lemma on linear independence
of characters]]), hence $k[H] \simeq O(G)$.

=--


diagram

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Category theory#
+-- {: .hide}
[[!include category theory - contents]]
=--
=--
=--

# Contents
* table of contents
{: toc}

## Idea

Informally, a **diagram** in a [[category]] $C$ consists of some [[objects]] of $C$ connected by some [[morphisms]] of $C$.  Frequently when doing category theory, we "draw diagrams" such as
$$\array{A & \overset{f}{\to} & B\\
  ^h\downarrow && \downarrow^k\\
  C& \underset{g}{\to} & D}$$
by drawing some objects (or dots labeled by objects) connected by arrows labeled by morphisms.

This terminology is often used when speaking about [[limits]] and [[colimits]]; that is, we speak about "the limit or colimit of a diagram."

There are two natural ways to give the notion of "diagram" a formal definition.  One is to say that a diagram is a [[functor]], usually one whose domain is a (very) [[small category]].  This level of generality is sometimes convenient.

On the other hand, a more direct representation of what we draw on the page, when we "draw a diagram," only involves labeling the vertices and edges of a [[directed graph]] (or [[quiver]]) by objects and morphisms of the category.  This sort of diagram can be identified with a functor whose domain is a [[free category]], and this is the most common context when we talk about diagrams "commuting."

## Definitions

### Diagrams shaped like categories
 {#CategoryShapedDiagrams}

We discuss here diagrams of the "shape of a small category", as well as the concept of [[cones]]/[[cocones]] over these and [[limit|limiting]]/[[colimit|colimiting]] (co-)cones. There is a quick abstract functorial definition

* _[functorial definition](#CategoryShapedDiagramFunctorially)_

and there is a more long-winded but more explicit definition in terms of components

* _[component definition](#CategoryShapedDiagramInComponents)_.

#### Functorial definition
 {#CategoryShapedDiagramFunctorially}

We state the concise functorial definition of diagrams of the shape of categories.

+-- {: .num_defn #AbstractDefinition}
###### Definition
**(functorial definition)**

Let $\mathcal{C}$ be a [[category]] and let  $\mathcal{I}$  [[small category]],

Then

1. a _diagram $X$ of shape $\mathcal{I}$ in $\mathcal{C}$_ is a [[functor]] of the form

   $$
     X \;\colon\; \mathcal{I} \longrightarrow \mathcal{C}
     \,,
   $$

1. the _category of $\mathcal{I}$-shaped diagrams in $\mathcal{C}$_ is the [[functor category]] $Funct(\mathcal{I}, \mathcal{C})$;

1. a diagram $X \colon \mathcal{I} \to \mathcal{C}$ is _constant_ if it is a [[constant functor]]

   $$
     const_{\tilde X}
       \;\colon\;
     \mathcal{I}
       \overset{\exists!}{\longrightarrow}
     \ast
       \overset{\tilde X}{\longrightarrow}
     \mathcal{C}
   $$

   in which case it is given by the data of a single object $\tilde X$;

1. a _[[cone]]_ $C$ over a diagram $X \colon \mathcal{I} \to \mathcal{C}$ with _tip_ an object $\tilde X \in \mathcal{C}$ is a [[natural transformation]] from the constant diagram $const_{\tilde X} \colon \mathcal{I} \to \ast \to \mathcal{C}$ to $X$:

   $$
     C \;\colon\; const_{\tilde X} \Rightarrow X
   $$

1. a _[[cocone]]_ $C$ under a diagram $X \colon \mathcal{I} \to \mathcal{C}$ is a [[natural transformation]] to a constant diagram $const_{\tilde X} \colon \mathcal{I} \to \ast \to \mathcal{C}$ from $X$:

   $$
     C \;\colon\; X \Rightarrow const_{\tilde X}
   $$

1. the _limiting cone_ (or  _[[limit]]_, for short) over a diagram $X$ is, if it exists, the [[terminal object]] in the [[category]] of [[cones]] over $X$, which means that it is a cone $C_{lim}$ with tip denoted $\underset{\longleftarrow}{\lim}_i X_i$ such that for every other cone $C$ with tip $\tilde X$ there is a unique [[natural transformation]] $\phi \colon const_{\tilde X} \Rightarrow const_{\underset{\longleftarrow}{\lim}_i X_i}$ such that

   $$
     C = C_{lim} \circ \phi
   $$

1. the _colimiting cone_ (or _[[colimit]]_, for short) under a diagram $X$ is, if it exists, the [[initial object]] in the [[category]] of [[cocones]] under $X$, which means that it is a co-cone $C_{lim}$ with tip denoted $\underset{\longrightarrow}{\lim}_i X_i$ such that for every other cocone $C$ with tip $\tilde X$ there is a unique [[natural transformation]] $\phi \colon  const_{\underset{\longrightarrow}{\lim}_i X_i} \Rightarrow const_{\tilde X}$ such that

   $$
     C = \phi \circ C_{lim}
     \,.
   $$

=--

#### Component definition
 {#CategoryShapedDiagramInComponents}

We state an explicit component-based definition of diagrams of the shape of categories.

+-- {: .num_defn #Diagram}
###### Definition
**([[diagram]] in a [[category]])**

A [[diagram]] $X_\bullet$ in a [[category]] is

1. a [[set]] $\{ X_i \}_{i \in I}$ of [[objects]] in the category;

1. for every [[pair]] $(i,j) \in I \times I$ of labels of objects a [[set]]
   $\{ X_i \overset{ f_\alpha }{\longrightarrow} X_j\}_{\alpha \in I_{i,j}}$ of [[morphisms]] between these objects;

1. for every label $i \in I$ a choice of element $\epsilon_i \in I_{i,i}$;

1. for each [[triple]] $i,j,k \in I$ a [[function]]

   $$
     comp_{i,j,k} \;\colon\; I_{i,j} \times I_{j,k} \longrightarrow I_{i,k}
   $$

such that

1. the pairing $comp$ is [[associativity|associative]] and [[unital]] with the $f_{\epsilon_i}$-s the [[neutral elements]];

1. for every $i \in I$ then $f_{\epsilon_i} = id_{X_i}$ is the [[identity morphism]] on the $i$-th obect;

1. for every composable pair of morphisms

  $$
    X_i
      \overset{f_{\alpha} }{\longrightarrow}
    X_j
      \overset{ f_{\beta} }{\longrightarrow}
    X_k
  $$

  then the [[composition|composite]] of these two morphisms equals the morphism of the diagram that is
  labeled by the value of $comp_{i,j,k}$ on their labels:

  $$
    f_{\beta} \circ f_\alpha
    \,=\,
    f_{comp_{i,j,k}( \alpha, \beta )}
    \,.
  $$

The last condition we depict as follows:

$$
  \array{
    && X_j
    \\
    & {}^{\mathllap{f_{\alpha}}}\nearrow && \searrow^{\mathrlap{f_{\beta}}}
    \\
    X_i && \underset{ comp_{i,j,k}(\alpha,\beta) }{\longrightarrow} && X_k
  }
  \,.
$$

=--

+-- {: .num_defn #Cone}
###### Definition
**([[cone]] over a [[diagram]])**

Consider a [[diagram]]

$$
  X_\bullet
    \,=\,
  \left(
     \left\{
       X_i \overset{f_\alpha}{\longrightarrow} X_j
     \right\}_{i,j \in I, \alpha \in I_{i,j}}
     \,,\,
     \mathrm{comp}
  \right)
$$

in some [[category]] (def. \ref{Diagram}). Then

1. a _[[cone]]_ over this diagram is

   1. an [[object]] $\tilde X$ in the category;

   1. for each $i \in I$ a morphism $\tilde X \overset{p_i}{\longrightarrow} X_i$ in the category

   such that

   * for all $(i,j) \in I \times I$ and all $\alpha \in I_{i,j}$ then the condition

     $$
       f_{\alpha} \circ p_i = p_j
     $$

     holds, which we depict as follows:

     $$
       \array{
         && \tilde X
         \\
         & {}^{\mathllap{p_i}}\swarrow && \searrow^{\mathrlap{p'_j}}
         \\
         X_i
           && \underset{f_\alpha}{\longrightarrow} &&
         X_j
       }
     $$

1. a _[[co-cone]]_ over this diagram is

   1. an [[object]] $\tilde X$ in the category;

   1. for each $i \in I$ a morphism $q_i \colon X_i \longrightarrow \tilde X$ in the category

   such that

   * for all $(i,j) \in I \times I$ and all $\alpha \in I_{i,j}$ then the condition

     $$
       q_j \circ f_{\alpha} = q_i
     $$

     holds, which we depict as follows:

     $$
       \array{
         X_i && \overset{f_\alpha}{\longrightarrow} && X_j
         \\
         & {}_{\mathllap{q_i}}\searrow && \swarrow_{\mathrlap{q_j}}
         \\
         && \tilde X
       }
       \,.
     $$

=--

+-- {: .num_defn #LimitingCone}
###### Definition

Consider a [[diagram]]

$$
  X_\bullet
    \,=\,
  \left(
     \left\{
       X_i \overset{f_\alpha}{\longrightarrow} X_j
     \right\}_{i,j \in I, \alpha \in I_{i,j}}
     \,,\,
     \mathrm{comp}
  \right)
$$

in some [[category]] (def. \ref{Diagram}). Then

1. its _[[limit|limiting cone]]_ (or just _[[limit]]_ for short) is, if it exists,
   [[generalized the|the]] [[cone]]

   $$
     \left\{
     \array{
       && \underset{\longleftarrow}{\lim}_i X_i
       \\
       & {}^{\mathllap{p_i}}\swarrow && \searrow^{\mathrlap{p_j}}
       \\
       X_i
         && \underset{f_\alpha}{\longrightarrow} &&
       X_j
     }
     \right\}
   $$

   over this diagram (def. \ref{Cone}) which is _universal_ or _terminal_ among all
   possible cones,
   in that it has the property that for

   $$
     \left\{
     \array{
       && \tilde X
       \\
       & {}^{\mathllap{p'_i}}\swarrow && \searrow^{\mathrlap{p'_j}}
       \\
       X_i
         && \underset{f_\alpha}{\longrightarrow} &&
       X_j
     }
     \right\}
   $$

   any other [[cone]], then there is a unique morphism

   $$
     \phi \;\colon\; \tilde X \overset{}{\longrightarrow} \underset{\longrightarrow}{\lim}_i X_i
   $$

   that factors the given cone through the limiting cone, in that for all $i \in I$ then

   $$
     p'_i = p_i \circ \phi
   $$

   which we depict as follows:

   $$
     \array{
       \tilde X
       \\
       {}^{\mathllap{\phi}}\downarrow & \searrow^{\mathrlap{p_i}}
       \\
       \underset{\longrightarrow}{\lim}_i X_i
       &\underset{p_i}{\longrightarrow}&
       X_i
     }
   $$

1. its _[[colimit|colimiting cocone]]_ (or just _[[colimit]]_ for short) is, if it exists,
   [[generalized the|the]] [[cocone]]

   $$
     \left\{
     \array{
       X_i
         && \underset{f_\alpha}{\longrightarrow} &&
       X_j
       \\
       & {}^{\mathllap{q_i}}\searrow && \swarrow^{\mathrlap{q_j}}
       \\
       \\
       && \underset{\longrightarrow}{\lim}_i X_i
     }
     \right\}
   $$

   under this diagram (def. \ref{Cone}) which is _universal_ or _initial_ among all
   possible co-cones,
   in that it has the property that for

   $$
     \left\{
     \array{
       X_i
         && \underset{f_\alpha}{\longrightarrow} &&
       X_j
       \\
       & {}^{\mathllap{q'_i}}\searrow && \swarrow_{\mathrlap{q'_j}}
       \\
       && \tilde X
     }
     \right\}
   $$

   any other [[cocone]], then there is a unique morphism

   $$
     \phi \;\colon\;  \underset{\longrightarrow}{\lim}_i X_i \overset{}{\longrightarrow} \tilde X
   $$

   that factors the given co-cone through the co-limiting cocone, in that for all $i \in I$ then

   $$
     q'_i = \phi \circ q_i
   $$

   which we depict as follows:

   $$
     \array{
       X_i
       &\overset{q_i}{\longrightarrow}&
       \underset{\longrightarrow}{\lim}_i X_i
       \\
       {}^{\mathllap{\phi}}\downarrow & \swarrow^{\mathrlap{q'_i}}
       \\
       \tilde X
     }
   $$

=--

### Diagrams shaped like directed graphs
 {#ShapeOfDirectedGraph}

+-- {: .num_defn}
###### Definition
**([[free diagram]])**

If $J$ is a [[directed graph]] with [[free category]] $F(J)$, then a __diagram__ in $C$ of shape $J$ is a functor $D\colon F(J) \to C$, or equivalently a graph morphism $\bar{D}\colon J \to U(C)$.
=--

Here $F\colon Quiv \to Cat$ denotes the [[free category]] on a quiver and $U\colon Cat \to Quiv$ the underlying quiver of a category, which form a pair of [[adjoint functors]].  These are the sorts of diagrams which we "draw on a page" --- we draw a quiver, and then label its vertices with objects of $C$ and its edges with morphisms in $C$, thereby forming a graph morphism $J\to U(C)$.

## Remarks

* For either sort of diagram, $J$ may be called the __shape__, __scheme__, or __index__ category or graph.

* Note that given a diagram $D:J\to C$, the image of the shape $J$ is not necessarily a [[subcategory]] of $C$, even if $J$ is itself taken to be a category.  This is because the functor $D$ could identify objects of $J$, thereby producing new potential composites which do not exist in $J$.  (Sometimes one talks about the "image" of a functor as a subcategory, but this really means the subcategory *generated* by the image in the literal objects-and-morphisms sense.)

* $C$ must be a [[strict category]] to make sense of $U(C)$; however, $F(J)$ always makes sense.

## Commutative diagrams

If $J$ is a category, then a diagram $J\to C$ is __[[commutative diagram|commutative]]__ if it factors through a [[thin category]].  Equivalently, a diagram of shape $J$ commutes iff any two morphisms in $C$ that are assigned to any pair of [[parallel morphisms]] in $J$ (i.e., with same source and target in $J$) are equal.

If $J$ is a quiver, as is more common when we speak about "commutative" diagrams, then a diagram of shape $J$ commutes if the functor $F(J) \to C$ factors through a thin category.  Equivalently, this means that given any two parallel *paths* of arbitrary finite length (including zero) in $J$, their images in $C$ have equal composites.

## Examples

* The shape of the **empty diagram** is the [[initial object|initial category]] with no object and no morphism.

  Every category $C$ admits a unique diagram whose shape is the empty ([[initial object|initial]]) category, which is called the **empty diagram** in $C$.

* The shape of the **terminal diagram** is the [[terminal category]] $J = \{*\}$ consisting of a single object and a single morphism (the identity morphism on that object).

  Specifying a diagram in $C$ whose shape is $\{*\}$ is the same as specifying a single [[object]] of $C$, the image of the unique object of $1$. (See [[global element]])

* A diagram of the shape $\{a \to b\}$ in $C$ is the choice of any one [[morphism]] $D_{a b} : X_a \to X_b$ in $C$.

  Notice that strictly speaking this counts as a _commuting diagram_ , but is a degenerate case of a commuting diagram, since there is only a single morphism involved, which is necessarily equal to itself.

* If $J$ is the quiver with one object $a$ and one endo-edge $a\to a$, then a diagram of shape $J$ in $C$ consists of a single [[endomorphism]] in $C$.  Since $a\to a$ and the zero-length path are parallel in $J$, such a diagram only commutes if the endomorphism is an identity.  Note, in particular, that a single endomorphism can be considered as a diagram with more than one shape (this one and the previous one), and that whether this diagram "commutes" depends on the chosen shape.

* A diagram of shape the [[poset]] indicated by

  $$
    \left\{
      \array{
         a &\to& b
         \\
         \downarrow && \downarrow
         \\
         b' &\to& c
      }
    \right\}
  $$

  is a **commuting square** in $C$: this is a choice of four (not necessarily distinct!) objects $X_a, X_b, X_{b'}, X_c$ in C, together with a choice of (not necessarily distinct) four morphisms $D_{a b} : X_a \to X_b$, $D_{b c} : X_b \to X_c$ and $D_{a b'} : X_a \to X_{b'}$, $D_{b' c} : X_{b'} \to X_c$ in $C$, such that the composite morphism $D_{b c}\circ D_{a b}$ equals the composite $D_{b' c}\circ D_{a b'}$.

  One typically "draws the diagram" as

  $$
      \array{
         X_a &\stackrel{D_{a b}}{\to}& X_b
         \\
         {}^{\mathllap{D_{a b'}}}\downarrow &&
        \downarrow^{\mathrlap{D_{b c}}}
         \\
         X_{b'} &\stackrel{D_{b' c}}{\to}& X_{c}
      }
  $$

  in $C$ and says that _the diagram commutes_ if the above equality of composite morphisms holds.

  Notice that the original poset had, necessarily, a morphism $a \to c$ and could have equivalently  been depicted as

  $$
    \left\{
      \array{
         a &\to& b
         \\
         \downarrow &\searrow& \downarrow
         \\
         b' &\to& c
      }
    \right\}
  $$

  in which case we could more explicitly draw its image in $C$ as

  $$
      \array{
         X_a &\stackrel{D_{a b}}{\to}& X_b
         \\
         {}^{\mathllap{D_{a b'}}}\downarrow &\searrow^{\stackrel{D_{b c}\circ D_{a b}}{= D_{b' c}\circ D_{a b'}}}&
        \downarrow^{\mathrlap{D_{b c}}}
         \\
         X_{b'} &\stackrel{D_{b' c}}{\to}& X_{c}
      }
  $$

* By contrast, a diagram whose shape is the *quiver*
  $$
    \left\{
      \array{
         a &\to& b
         \\
         \downarrow && \downarrow
         \\
         b' &\to& c
      }
    \right\}
  $$
  is a not-necessarily-commuting square.  The free category on this quiver differs from the poset in the previous example by having *two* morphisms $a\to c$, one given by the composite $a\to b\to c$ and the other by the composite $a \to b'\to c$.  But the poset in the previous category is the poset reflection of this $F(J)$, so a diagram of this shape commutes, in the sense defined above, iff it is a commuting square in the usual sense.

* A pair of objects is a diagram whose shape is a [[discrete category]] with two objects.

* A pair of [[parallel morphisms]] is a diagram whose shape is a category
  $J = \{a \stackrel{\to}{\to} b\}$
  with two objects and two morphisms from one to the other.

  Notice that if we required  $\{a \stackrel{\to}{\to} b\}$ to be a [[poset]] this would necessarily make these two morphisms equal, and hence reduce this example to the one where $J = \{a \to b\}$.  In other words, a diagram of this shape only *commutes* if the two morphisms are equal.

* A [[span]] is a diagram whose shape is a category with just three objects and single morphisms from one of the objects to the other two;

  $$
    J = \left\{
      \array{
        && a
        \\
        & \swarrow && \searrow
        \\
        b &&&& c
      }
    \right\}
  $$

  dually, a [[cospan]] is a diagram whose shape is [[opposite category|opposite]] to the shape of a span.

  $$
    J = \left\{
      \array{
        b &&&& c
        \\
        & \searrow && \swarrow
        \\
        && a
      }
    \right\}
  $$

* A [[transfinite composition]] diagram is one of the shape the [[poset]] indicated by

  $$
    J =
    \left\{
     \array{
      a_0 &\to& a_1 &\to& \cdots
      \\
      & \searrow & \downarrow & \swarrow & \cdots
      \\
      && b
     }
    \right\}
    \,,
  $$

  where the indices may range over the [[natural number]]s or even some more general [[ordinal number]].

  This is a non-finite commuting diagram.

* [[tower diagram]]

## Related concepts

* [[commuting diagram]]

* [[internal diagram]]

* [[free diagram]]

[[!redirects diagram]]
[[!redirects diagrams]]

[[!redirects small diagram]]
[[!redirects small diagrams]]


diagram chasing

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Diagram chasing lemmas
+-- {: .hide}
[[!include diagram chasing lemmas - contents]]
=--
#### Homological algebra
+-- {: .hide}
[[!include homological algebra - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

Diagram chasing is a common technique in [[homological algebra]] for proving properties of and constructing morphisms in [[abelian category|abelian categories]], where one traces elements in various ways around [[commutative diagram|commutative diagrams]].

## Examples

Many basic lemmas in homological algebra, such as the [[five lemma]], the [[3x3 lemma]] and the [[snake lemma]], are typically proven by diagram chases. See for instance the proof at _[[five lemma]]_ or any book on homological algebra.

The [[salamander lemma]] can sometimes be used to give more conceptual proofs.

## Diagram chases in general abelian categories

There are at least five approaches to performing diagram chases in general abelian categories (not assumed to be [[concrete category|concrete]] like [[Ab]] or $R$[[Mod]]):

1. Directly use the universal properties of the objects involved ([[kernel|kernels]], [[cokernel|cokernels]] etc.).
1. Use equivalence classes of [[generalized element|generalized elements]] to mimic naive (element-based) proofs, as detailed at _[[element in an abelian category]]_. These can only be used to show properties of already-given morphisms and not to construct morphisms (for example the [[connecting homomorphism]] of a short exact sequence) by giving their action on elements.
1. Use genuine generalized elements, see _[[element in an abelian category]]_. With these, the naive way of constructing morphisms $A \to B$ (first showing that for every $a \in A$ there exists a certain $b \in B$, then showing that this is independent of any choices made) carries over to the general setting.
1. Interpret constructive element-based proofs written in the fragment of [[regular logic]] using categorical semantics, see _[[internal logic]]_. The naive way of constructing morphisms works because the "axiom of unique choice" is valid in abelian categories (see [Johnstone, Prop. D1.3.12](#Johnstone)).
1. Use the [[Freyd-Mitchell embedding theorem]].

## Related concepts

* [[salamander lemma]]

* [[element in an abelian category]]

* [[internal language]]

* [[Freyd-Mitchell embedding theorem]]

* [[diagram chasing lemmas - contents]]

## References

* {#Bergman74} [[George Bergman]], _A note on abelian categories -- translating element-chasing proofs, and exact embedding in abelian groups_ (1974) [[pdf](http://math.berkeley.edu/~gbergman/papers/unpub/elem-chase.pdf), [[Bergman-ElementChasing.pdf:file]]]

* {#Johnstone} [[Peter Johnstone]], _[[Sketches of an Elephant]]_ (2002)

* [[Daniel Murfet]], _Diagram Chasing in Abelian Categories_ (2006) ([pdf](http://therisingsea.org/notes/DiagramChasingInAbelianCategories.pdf))

* {#Bergman12} [[George Bergman]], _On diagram-chasing in double complexes_, Theory and Applications of Categories **26** (2012) 60-96 [[arXiv:1108.0958](http://arxiv.org/abs/1108.0958), [tac:26-03](http://www.tac.mta.ca/tac/volumes/26/3/26-03abs.html), [pdf](http://www.tac.mta.ca/tac/volumes/26/3/26-03.pdf)]

  > (introducing the [[salamander lemma]])

[[!redirects diagram chasing lemmas]]

[[!redirects diagram chase]]
[[!redirects diagram chases]]


diagram chasing lemmas - contents

**[[diagram chasing]]** in [[homological algebra]]

* [[salamander lemma]] $\Rightarrow$

  * [[3x3 lemma]], [nxn lemma](salamander+lemma#nxnLemma)

  * [[four lemma]] $\Rightarrow$ [[five lemma]]

  * [[snake lemma]] $\Rightarrow$ [[connecting homomorphism]]

  * [[braid lemma]]


diagram of a first-order structure

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Model theory
+-- {: .hide}
[[!include model theory - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea
Given a [[first-order structure|model]] $M$ of a (not necessarily complete) [[first-order theory]] $T$, one can canonically associate theories $T_{\mathsf{Diag}(M)}$ and $T_{\mathsf{EDiag}(M)}$ whose models are precisely the models $N \models T$ into which $M$ embeds as a substructure and [[elementary embedding|elementary substructure]], respectively.

In the case of the latter, this gives a theory whose category of models is precisely the [[co-slice category]] $M/\mathbf{Mod}(T)$ of models under $M$ in $\mathbf{Mod}(T)$.

## Definition
Let $M$ be a [[first-order structure]] in the language $\mathcal{L}$. We obtain an expanded language $\mathcal{L}(M)$ by adding to $\mathcal{L}$ new constant symbols $c_m$ for each $m \in M$, and $M$ is naturally an $\mathcal{L}(M)$-structure by interpreting each new constant as its namesake. The **elementary diagram** of $M$, written $\mathsf{EDiag}(M)$, is the set of all $\mathcal{L}$-sentences possibly using constants $c_m$ which are true in $M$, i.e. the $\mathcal{L}(M)$-theory of $M$.

The **quantifier-free diagram** of $M$, written $\mathsf{Diag}(M)$, is obtained the same way as $\mathsf{EDiag}(M)$, but only allowing quantifier-free $\mathcal{L}(M)$-sentences.

If $N$ models $\mathsf{EDiag}(M)$, then $N$ contains $M$ as an elementary substructure. If $N$ models $\mathsf{Diag}(M)$, then $N$ contains $M$ as an induced substructure.

If we are given $M$ and $T$ as above, we simply obtain $T_{\mathsf{Diag}(M)}$ and $T_{\mathsf{EDiag}(M)}$ as the union of $T$ (viewed as an $\mathcal{L}(M)$-theory) with $\mathsf{Diag}(M)$ and $\mathsf{EDiag}(M)$, respectively.

## Examples
* A trivial example is [[ACF]]$_0$, the theory of [[algebraically closed field|algebraically closed fields]] of characteristic zero (in the language of rings). Since $\mathbb{Q}$ is the prime field of characteristic zero, any algebraically closed field models $\mathsf{Diag}(\mathbb{Q})$, and in fact since each element of $\mathbb{Q}$ is already definable in [[ACF]]$_0$, $\mathsf{Diag}(\mathbb{Q})$ is just the quantifier-free part of [[ACF]]$_0$.

* Let $R$ be the [[countable random graph]]. Since it is an [[omega-categorical structure]], any countable model of $\mathsf{EDiag}(R)$ will again be isomorphic to $R$. This is not true if we replace $\mathsf{EDiag}(R)$ with $\mathsf{Diag}(R)$, since there are all sorts of ways to extend $R$ while ensuring it no longer satisfies the almost-sure theory of finite graphs. (For example, we could add a new vertex and connect it to all the vertices from $R$.)

## Remarks
* For $T' = T_{\mathsf{Diag}(M)}$ or $T_{\mathsf{EDiag}(M)}$ there is an obvious interpretation $T \to T'$ which induces for every $N \models T'$ a map of automorphism groups $\operatorname{Aut}_{\mathcal{L}(M)}(N) \to \operatorname{Aut}_{\mathcal{L}}(N)$, corresponding to the inclusion

$$
\operatorname{Aut}_{\mathcal{L}}(N/M) \hookrightarrow \operatorname{Aut}_{\mathcal{L}}(N)
$$

of the pointwise [[stabilizer]] of $M$ in $N$ into the full automorphism group of $N$.

* To add a distinct constant symbol to a theory is to adjoin a new [[global point]] to its [[syntactic category]]. This doesn't do very much unless if you additionally specify its [[type (in model theory)|type]], i.e. the [[ultrafilter]] of subobjects above it. When we pass to the quantifier-free diagram of a model, we specify constants named after the model up to quantifier-free types, and when we pass to the elementary diagram of a model, we specify constants named after the model up to complete types.

* A [[first-order theory]] T [[quantifier elimination|eliminates quantifiers]] if and only if it is "substructure-complete": given any model $M$ of $T$ and any _substructure_ $N \subseteq M$, $T_{\mathsf{Diag}(N)}$ is complete.

+-- {: .num_remark}
###### Remark

The process of passing from $T$ to $T_{\mathsf{Diag}(M)}$ (resp. $\mathsf{EDiag}$) is [[functorial]] in the way you would expect the process of passing from a category of models to a co-slice category of models to be on corepresenting objects.

That is (now [[elimination of imaginaries|eliminating imaginaries]] and working with the [[pretopos completion|pretopos completions]] of [[syntactic category|syntactic categories]]): if $T'$ is an $\mathcal{L}'$-theory and $M$ is an $\mathcal{L}'$-structure, and $T$ is an $\mathcal{L}$-theory over $T'$ via an interpretation $T \overset{F}{\to} T'$, then there are naturally-induced interpretations

$$T'_{\mathsf{Diag}(F^*M)} \to T_{\mathsf{Diag}(M)} $$

and

$$T'_{\mathsf{EDiag}(F^*M)} \to T_{\mathsf{EDiag}(M)}.$$

=--

+-- {: .proof}
###### Proof

The [[interpretation]] $F$ induces a "taking reducts" functor

$$F^* \overset{\operatorname{df}}{=} \mathbf{Mod}(F) = \mathbf{Pretop}(F, \mathbf{Set}) : \mathbf{Mod}(T) \to \mathbf{Mod}(T').$$

We restrict $F^*$ to the full subcategory consisting of those models of $T$ embedding (resp. elementarily embedding) the structure $M$. These are [[elementary class|elementary classes]], and so those full subcategories are sub-[[ultracategory|ultracategories]] of $\mathbf{Mod}(T)$. The restrictions of $F^*$ are ultrafunctors

$$ \underline{\mathbf{Mod}}(T_{\mathsf{Diag}(M)}) \to  \underline{\mathbf{Mod}}(T'_{\mathsf{Diag}(F^*M)})$$

and

$$  \underline{\mathbf{Mod}}(T_{\mathsf{EDiag}(M)}) \to \underline{\mathbf{Mod}}(T'_{\mathsf{EDiag}(F^*M)})$$

because $F^*$ already was, and so by Makkai's [[strong conceptual completeness]], must be reflected by the desired interpretations.

(That the latter functor is well-defined just follows from the fact that specifying an object $c \in \mathbf{C}$ and a functor $G : \mathbf{C} \to \mathbf{D}$ naturally induces a functor on the [[co-slice category|co-slice categories]] $c/\mathbf{C} \to G(c)/\mathbf{D}$. That the former functor is well-defined is less automatic but still trivial to check.)

=--

## Related concepts
* [[first-order structure]]

* [[first-order theory]]

* [[quantifier elimination]]

* For the [[property]] of a theory $T$ that $T_{\mathsf{Diag}(A)}$ is complete for all substructures $A$, see [[substructure completeness]].

* For the [[property]] of a theory $T$ that $T_{\mathsf{EDiag}(M)}$ is complete for all models $M$, see [[model completeness]].

## References

* Dave Marker, (2002), _Model theory: an introduction_, section 2.3

[[!redirects elementary diagram]]
[[!redirects quantifier-free diagram]]
[[!redirects diagram (in model theory)]]


diagram of LCTVS properties

<svg width="1456pt" height="764pt" viewBox="0.00 0.00 1456.00 764.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 760)">
<title>LCTVS</title>
<polygon style="fill:white;stroke:white;" points="-4,4 -4,-760 1452,-760 1452,4 -4,4"/>
<g id="cluster6" class="cluster"><title>cluster_key_col1</title>
<polygon style="fill:none;stroke:white;" points="428,-81 428,-675 446,-675 446,-81 428,-81"/>
</g>
<g id="cluster8" class="cluster"><title>cluster_key_col2</title>
<polygon style="fill:none;stroke:white;" points="848,-153 848,-675 866,-675 866,-153 848,-153"/>
</g>
<g id="cluster10" class="cluster"><title>cluster_key_col3</title>
<polygon style="fill:none;stroke:white;" points="1222,-81 1222,-675 1240,-675 1240,-81 1222,-81"/>
</g>
<g id="node2" class="node"><title>FD</title>
<a xlink:href="http://ncatlab.org/nlab/show/Finite-Dimensional topological vector space" xlink:title="Finite-Dimensional">
<polygon style="fill:#ffffbb;stroke:black;" points="231,-756 177,-756 177,-720 231,-720 231,-756"/>
<text fill="#008B26" text-anchor="middle" x="204" y="-733.9" style="font-family:Times New Roman;font-size:14.00;">FD</text>
</a>
</g>
<g id="node3" class="node"><title>Hi</title>
<a xlink:href="http://ncatlab.org/nlab/show/Hilbert space" xlink:title="Hilbert (technically, admits a Hilbertian structure)">
<polygon style="fill:#ffffbb;stroke:black;" points="202,-684 148,-684 148,-648 202,-648 202,-684"/>
<text fill="#008B26" text-anchor="middle" x="175" y="-661.9" style="font-family:Times New Roman;font-size:14.00;">Hi</text>
</a>
</g>
<g id="edge5" class="edge"><title>FD->Hi</title>
<path style="fill:none;stroke:black;" d="M197,-720C193,-712 190,-702 186,-693"/>
<polygon style="fill:black;stroke:black;" points="189.26,-691.717 182,-684 182.863,-694.56 189.26,-691.717"/>
</g>
<g id="node17" class="node"><title>NuFr</title>
<a xlink:href="http://ncatlab.org/nlab/show/nuclear topological vector space" xlink:title="Nuclear Fréchet space">
<ellipse style="fill:#ffffbb;stroke:black;" cx="235" cy="-594" rx="7" ry="7"/>
</a>
</g>
<g id="edge29" class="edge"><title>FD->NuFr</title>
<path style="fill:none;stroke:black;" d="M208,-720C214,-692 226,-638 231,-611"/>
<polygon style="fill:black;stroke:black;" points="234.471,-611.492 233,-601 227.607,-610.119 234.471,-611.492"/>
</g>
<g id="node6" class="node"><title>IP</title>
<a xlink:href="http://ncatlab.org/nlab/show/inner-product space" xlink:title="Topology from an inner-product">
<polygon style="fill:#ffffbb;stroke:black;" points="102,-612 48,-612 48,-576 102,-576 102,-612"/>
<text fill="#008B26" text-anchor="middle" x="75" y="-589.9" style="font-family:Times New Roman;font-size:14.00;">IP</text>
</a>
</g>
<g id="edge7" class="edge"><title>Hi->IP</title>
<path style="fill:none;stroke:black;" d="M150,-648C138,-639 122,-628 108,-618"/>
<polygon style="fill:black;stroke:black;" points="110.1,-615.2 100,-612 105.9,-620.8 110.1,-615.2"/>
</g>
<g id="node33" class="node"><title>ReBa</title>
<a xlink:href="http://ncatlab.org/nlab/show/reflexive topological vector space" xlink:title="Reflexive Banach space">
<ellipse style="fill:#ffffbb;stroke:black;" cx="175" cy="-594" rx="7" ry="7"/>
</a>
</g>
<g id="edge13" class="edge"><title>Hi->ReBa</title>
<path style="fill:none;stroke:black;" d="M175,-648C175,-637 175,-622 175,-611"/>
<polygon style="fill:black;stroke:black;" points="178.5,-611 175,-601 171.5,-611 178.5,-611"/>
</g>
<g id="node4" class="node"><title>Nu</title>
<a xlink:href="http://ncatlab.org/nlab/show/Nuclear space" xlink:title="Nuclear">
<polygon style="fill:#ffffbb;stroke:black;" points="265,-540 211,-540 211,-504 265,-504 265,-540"/>
<text fill="#008B26" text-anchor="middle" x="238" y="-517.9" style="font-family:Times New Roman;font-size:14.00;">Nu</text>
</a>
</g>
<g id="node8" class="node"><title>Sc</title>
<a xlink:href="http://ncatlab.org/nlab/show/Schwartz space" xlink:title="Schwartz">
<polygon style="fill:#ffffbb;stroke:black;" points="308,-468 254,-468 254,-432 308,-432 308,-468"/>
<text fill="#008B26" text-anchor="middle" x="281" y="-445.9" style="font-family:Times New Roman;font-size:14.00;">Sc</text>
</a>
</g>
<g id="edge31" class="edge"><title>Nu->Sc</title>
<path style="fill:none;stroke:black;" d="M249,-504C254,-496 260,-486 265,-477"/>
<polygon style="fill:black;stroke:black;" points="268.203,-478.441 270,-468 262.084,-475.042 268.203,-478.441"/>
</g>
<g id="node5" class="node"><title>Ba</title>
<a xlink:href="http://ncatlab.org/nlab/show/Banach space" xlink:title="Banach (technically, complete and normable)">
<polygon style="fill:#ffffbb;stroke:black;" points="139,-540 85,-540 85,-504 139,-504 139,-540"/>
<text fill="#008B26" text-anchor="middle" x="112" y="-517.9" style="font-family:Times New Roman;font-size:14.00;">Ba</text>
</a>
</g>
<g id="node10" class="node"><title>Fr</title>
<a xlink:href="http://ncatlab.org/nlab/show/Fréchet space" xlink:title="Fréchet">
<polygon style="fill:#ffffbb;stroke:black;" points="198,-468 144,-468 144,-432 198,-432 198,-468"/>
<text fill="#008B26" text-anchor="middle" x="171" y="-445.9" style="font-family:Times New Roman;font-size:14.00;">Fr</text>
</a>
</g>
<g id="edge19" class="edge"><title>Ba->Fr</title>
<path style="fill:none;stroke:black;" d="M127,-504C134,-495 142,-485 150,-476"/>
<polygon style="fill:black;stroke:black;" points="152.8,-478.1 156,-468 147.2,-473.9 152.8,-478.1"/>
</g>
<g id="node12" class="node"><title>No</title>
<a xlink:href="http://ncatlab.org/nlab/show/normed vector space" xlink:title="Normable space">
<polygon style="fill:#ffffbb;stroke:black;" points="54,-468 1.42109e-14,-468 3.55271e-15,-432 54,-432 54,-468"/>
<text fill="#008B26" text-anchor="middle" x="27" y="-445.9" style="font-family:Times New Roman;font-size:14.00;">No</text>
</a>
</g>
<g id="edge27" class="edge"><title>Ba->No</title>
<path style="fill:none;stroke:black;" d="M91,-504C80,-495 67,-484 56,-474"/>
<polygon style="fill:black;stroke:black;" points="58.1,-471.2 48,-468 53.9,-476.8 58.1,-471.2"/>
</g>
<g id="node15" class="node"><title>LB</title>
<a xlink:href="http://ncatlab.org/nlab/show/LB space" xlink:title="strict inductive sequence of Banach spaces">
<polygon style="fill:#ffffbb;stroke:black;" points="126,-468 72,-468 72,-432 126,-432 126,-468"/>
<text fill="#008B26" text-anchor="middle" x="99" y="-445.9" style="font-family:Times New Roman;font-size:14.00;">LB</text>
</a>
</g>
<g id="edge17" class="edge"><title>Ba->LB</title>
<path style="fill:none;stroke:black;" d="M109,-504C108,-496 106,-487 104,-478"/>
<polygon style="fill:black;stroke:black;" points="107.393,-477.119 102,-468 100.529,-478.492 107.393,-477.119"/>
</g>
<g id="edge9" class="edge"><title>IP->No</title>
<path style="fill:none;stroke:black;" d="M69,-576C61,-551 46,-507 36,-478"/>
<polygon style="fill:black;stroke:black;" points="39.2259,-476.573 33,-468 32.5212,-478.584 39.2259,-476.573"/>
</g>
<g id="node7" class="node"><title>Mo</title>
<a xlink:href="http://ncatlab.org/nlab/show/Montel space" xlink:title="Montel">
<polygon style="fill:#ffffbb;stroke:black;" points="344,-540 290,-540 290,-504 344,-504 344,-540"/>
<text fill="#008B26" text-anchor="middle" x="317" y="-517.9" style="font-family:Times New Roman;font-size:14.00;">Mo</text>
</a>
</g>
<g id="node26" class="node"><title>Re</title>
<a xlink:href="http://ncatlab.org/nlab/show/reflexive topological vector space" xlink:title="Reflexive">
<polygon style="fill:#ffbbff;stroke:black;" points="352,-396 298,-396 298,-360 352,-360 352,-396"/>
<text fill="#008B26" text-anchor="middle" x="325" y="-373.9" style="font-family:Times New Roman;font-size:14.00;">Re</text>
</a>
</g>
<g id="edge83" class="edge"><title>Mo->Re</title>
<path style="fill:none;stroke:black;" d="M318,-504C319,-479 321,-435 323,-406"/>
<polygon style="fill:black;stroke:black;" points="326.488,-406.299 324,-396 319.522,-405.602 326.488,-406.299"/>
</g>
<g id="node9" class="node"><title>UB</title>
<a xlink:href="http://ncatlab.org/nlab/show/ultrabornological topological vector space" xlink:title="Ultrabornological">
<polygon style="fill:#ffffbb;stroke:black;" points="198,-324 144,-324 144,-288 198,-288 198,-324"/>
<text fill="#008B26" text-anchor="middle" x="171" y="-301.9" style="font-family:Times New Roman;font-size:14.00;">UB</text>
</a>
</g>
<g id="node13" class="node"><title>Bo</title>
<a xlink:href="http://ncatlab.org/nlab/show/bornological topological vector space" xlink:title="Bornological">
<polygon style="fill:#ffffbb;stroke:black;" points="165,-252 111,-252 111,-216 165,-216 165,-252"/>
<text fill="#008B26" text-anchor="middle" x="138" y="-229.9" style="font-family:Times New Roman;font-size:14.00;">Bo</text>
</a>
</g>
<g id="edge43" class="edge"><title>UB->Bo</title>
<path style="fill:none;stroke:black;" d="M163,-288C159,-280 155,-270 150,-261"/>
<polygon style="fill:black;stroke:black;" points="153.26,-259.717 146,-252 146.863,-262.56 153.26,-259.717"/>
</g>
<g id="node32" class="node"><title>QCQB</title>
<a xlink:href="http://ncatlab.org/nlab/show/barreled topological vector space" xlink:title="Quasi-Complete and Quasi-Barrelled">
<ellipse style="fill:#ffffbb;stroke:black;" cx="191" cy="-234" rx="7" ry="7"/>
</a>
</g>
<g id="edge89" class="edge"><title>UB->QCQB</title>
<path style="fill:none;stroke:black;" d="M176,-288C179,-277 183,-262 186,-251"/>
<polygon style="fill:black;stroke:black;" points="189.479,-251.584 189,-241 182.774,-249.573 189.479,-251.584"/>
</g>
<g id="node14" class="node"><title>LF</title>
<a xlink:href="http://ncatlab.org/nlab/show/LF space" xlink:title="strict inductive sequence of Fréchet spaces">
<polygon style="fill:#ffffbb;stroke:black;" points="198,-396 144,-396 144,-360 198,-360 198,-396"/>
<text fill="#008B26" text-anchor="middle" x="171" y="-373.9" style="font-family:Times New Roman;font-size:14.00;">LF</text>
</a>
</g>
<g id="edge23" class="edge"><title>Fr->LF</title>
<path style="fill:none;stroke:black;" d="M171,-432C171,-424 171,-415 171,-406"/>
<polygon style="fill:black;stroke:black;" points="174.5,-406 171,-396 167.5,-406 174.5,-406"/>
</g>
<g id="node16" class="node"><title>Me</title>
<a xlink:href="http://ncatlab.org/nlab/show/metrisable topological vector space" xlink:title="Metrisable">
<polygon style="fill:#ffffbb;stroke:black;" points="126,-396 72,-396 72,-360 126,-360 126,-396"/>
<text fill="#008B26" text-anchor="middle" x="99" y="-373.9" style="font-family:Times New Roman;font-size:14.00;">Me</text>
</a>
</g>
<g id="edge21" class="edge"><title>Fr->Me</title>
<path style="fill:none;stroke:black;" d="M153,-432C144,-423 134,-413 124,-403"/>
<polygon style="fill:black;stroke:black;" points="126.546,-400.596 117,-396 121.596,-405.546 126.546,-400.596"/>
</g>
<g id="node21" class="node"><title>Pt</title>
<a xlink:href="http://ncatlab.org/nlab/show/Ptak space" xlink:title="Ptak Space">
<polygon style="fill:#bbffff;stroke:black;" points="270,-396 216,-396 216,-360 270,-360 270,-396"/>
<text fill="#008B26" text-anchor="middle" x="243" y="-373.9" style="font-family:Times New Roman;font-size:14.00;">Pt</text>
</a>
</g>
<g id="edge81" class="edge"><title>Fr->Pt</title>
<path style="fill:none;stroke:black;" d="M189,-432C198,-423 208,-413 218,-403"/>
<polygon style="fill:black;stroke:black;" points="220.404,-405.546 225,-396 215.454,-400.596 220.404,-405.546"/>
</g>
<g id="node11" class="node"><title>DF</title>
<a xlink:href="http://ncatlab.org/nlab/show/DF topological vector space" xlink:title="DF">
<polygon style="fill:#ffffbb;stroke:black;" points="54,-396 1.42109e-14,-396 3.55271e-15,-360 54,-360 54,-396"/>
<text fill="#008B26" text-anchor="middle" x="27" y="-373.9" style="font-family:Times New Roman;font-size:14.00;">DF</text>
</a>
</g>
<g id="edge39" class="edge"><title>No->DF</title>
<path style="fill:none;stroke:black;" d="M27,-432C27,-424 27,-415 27,-406"/>
<polygon style="fill:black;stroke:black;" points="30.5001,-406 27,-396 23.5001,-406 30.5001,-406"/>
</g>
<g id="edge11" class="edge"><title>No->Me</title>
<path style="fill:none;stroke:black;" d="M45,-432C54,-423 64,-413 74,-403"/>
<polygon style="fill:black;stroke:black;" points="76.4038,-405.546 81,-396 71.454,-400.596 76.4038,-405.546"/>
</g>
<g id="node28" class="node"><title>QB</title>
<a xlink:href="http://ncatlab.org/nlab/show/quasi-barrelled topological vector space" xlink:title="Quasi-Barrelled">
<polygon style="fill:#ffbbff;stroke:black;" points="220,-108 166,-108 166,-72 220,-72 220,-108"/>
<text fill="#008B26" text-anchor="middle" x="193" y="-85.9" style="font-family:Times New Roman;font-size:14.00;">QB</text>
</a>
</g>
<g id="edge45" class="edge"><title>Bo->QB</title>
<path style="fill:none;stroke:black;" d="M140,-216C142,-197 148,-167 157,-144 161,-134 167,-125 172,-117"/>
<polygon style="fill:black;stroke:black;" points="175.365,-118.262 178,-108 169.541,-114.379 175.365,-118.262"/>
</g>
<g id="edge87" class="edge"><title>LF->UB</title>
<path style="fill:none;stroke:black;" d="M171,-360C171,-352 171,-343 171,-334"/>
<polygon style="fill:black;stroke:black;" points="174.5,-334 171,-324 167.5,-334 174.5,-334"/>
</g>
<g id="edge41" class="edge"><title>LB->DF</title>
<path style="fill:none;stroke:black;" d="M81,-432C72,-423 62,-413 52,-403"/>
<polygon style="fill:black;stroke:black;" points="54.546,-400.596 45,-396 49.5962,-405.546 54.546,-400.596"/>
</g>
<g id="edge25" class="edge"><title>LB->LF</title>
<path style="fill:none;stroke:black;" d="M117,-432C126,-423 136,-413 146,-403"/>
<polygon style="fill:black;stroke:black;" points="148.404,-405.546 153,-396 143.454,-400.596 148.404,-405.546"/>
</g>
<g id="edge85" class="edge"><title>Me->Bo</title>
<path style="fill:none;stroke:black;" d="M104,-360C110,-335 122,-291 130,-262"/>
<polygon style="fill:black;stroke:black;" points="133.479,-262.584 133,-252 126.774,-260.573 133.479,-262.584"/>
</g>
<g id="edge33" class="edge"><title>NuFr->Nu</title>
<path style="fill:none;stroke:black;" d="M235,-587C236,-578 237,-563 237,-550"/>
<polygon style="fill:black;stroke:black;" points="240.5,-550 237,-540 233.5,-550 240.5,-550"/>
</g>
<g id="edge37" class="edge"><title>NuFr->Mo</title>
<path style="fill:none;stroke:black;" d="M240,-589C250,-580 271,-563 288,-547"/>
<polygon style="fill:black;stroke:black;" points="290.779,-549.219 296,-540 286.169,-543.951 290.779,-549.219"/>
</g>
<g id="node34" class="node"><title>ReFr</title>
<a xlink:href="http://ncatlab.org/nlab/show/reflexive topological vector space" xlink:title="Reflexive Fréchet space">
<ellipse style="fill:#ffffbb;stroke:black;" cx="178" cy="-522" rx="7" ry="7"/>
</a>
</g>
<g id="edge35" class="edge"><title>NuFr->ReFr</title>
<path style="fill:none;stroke:black;" d="M231,-588C222,-577 201,-552 189,-536"/>
<polygon style="fill:black;stroke:black;" points="191.8,-533.9 183,-528 186.2,-538.1 191.8,-533.9"/>
</g>
<g id="node19" class="node"><title>LC</title>
<a xlink:href="http://ncatlab.org/nlab/show/locally complete topological vector space" xlink:title="Locally Complete">
<polygon style="fill:#bbffff;stroke:black;" points="292,-36 238,-36 238,-1.06581e-14 292,-0 292,-36"/>
<text fill="#008B26" text-anchor="middle" x="265" y="-13.9" style="font-family:Times New Roman;font-size:14.00;">LC</text>
</a>
</g>
<g id="node20" class="node"><title>QC</title>
<a xlink:href="http://ncatlab.org/nlab/show/quasi-complete topological vector space" xlink:title="Quasi-Complete">
<polygon style="fill:#bbffff;stroke:black;" points="292,-180 238,-180 238,-144 292,-144 292,-180"/>
<text fill="#008B26" text-anchor="middle" x="265" y="-157.9" style="font-family:Times New Roman;font-size:14.00;">QC</text>
</a>
</g>
<g id="node23" class="node"><title>Sq</title>
<a xlink:href="http://ncatlab.org/nlab/show/sequentially complete topological vector space" xlink:title="Sequentially Complete">
<polygon style="fill:#bbffff;stroke:black;" points="292,-108 238,-108 238,-72 292,-72 292,-108"/>
<text fill="#008B26" text-anchor="middle" x="265" y="-85.9" style="font-family:Times New Roman;font-size:14.00;">Sq</text>
</a>
</g>
<g id="edge67" class="edge"><title>QC->Sq</title>
<path style="fill:none;stroke:black;" d="M265,-144C265,-136 265,-127 265,-118"/>
<polygon style="fill:black;stroke:black;" points="268.5,-118 265,-108 261.5,-118 268.5,-118"/>
</g>
<g id="node22" class="node"><title>BC</title>
<a xlink:href="http://ncatlab.org/nlab/show/Ptak space" xlink:title="Br Space">
<polygon style="fill:#bbffff;stroke:black;" points="270,-324 216,-324 216,-288 270,-288 270,-324"/>
<text fill="#008B26" text-anchor="middle" x="243" y="-301.9" style="font-family:Times New Roman;font-size:14.00;">BC</text>
</a>
</g>
<g id="edge61" class="edge"><title>Pt->BC</title>
<path style="fill:none;stroke:black;" d="M243,-360C243,-352 243,-343 243,-334"/>
<polygon style="fill:black;stroke:black;" points="246.5,-334 243,-324 239.5,-334 246.5,-334"/>
</g>
<g id="node24" class="node"><title>Cp</title>
<a xlink:href="http://ncatlab.org/nlab/show/complete topological vector space" xlink:title="Complete">
<polygon style="fill:#bbffff;stroke:black;" points="270,-252 216,-252 216,-216 270,-216 270,-252"/>
<text fill="#008B26" text-anchor="middle" x="243" y="-229.9" style="font-family:Times New Roman;font-size:14.00;">Cp</text>
</a>
</g>
<g id="edge63" class="edge"><title>BC->Cp</title>
<path style="fill:none;stroke:black;" d="M243,-288C243,-280 243,-271 243,-262"/>
<polygon style="fill:black;stroke:black;" points="246.5,-262 243,-252 239.5,-262 246.5,-262"/>
</g>
<g id="edge69" class="edge"><title>Sq->LC</title>
<path style="fill:none;stroke:black;" d="M265,-72C265,-64 265,-55 265,-46"/>
<polygon style="fill:black;stroke:black;" points="268.5,-46 265,-36 261.5,-46 268.5,-46"/>
</g>
<g id="edge65" class="edge"><title>Cp->QC</title>
<path style="fill:none;stroke:black;" d="M249,-216C251,-208 254,-198 257,-190"/>
<polygon style="fill:black;stroke:black;" points="260.479,-190.584 260,-180 253.774,-188.573 260.479,-190.584"/>
</g>
<g id="node30" class="node"><title>Bl</title>
<a xlink:href="http://ncatlab.org/nlab/show/barrelled topological vector space" xlink:title="Barrelled">
<polygon style="fill:#ffbbff;stroke:black;" points="220,-180 166,-180 166,-144 220,-144 220,-180"/>
<text fill="#008B26" text-anchor="middle" x="193" y="-157.9" style="font-family:Times New Roman;font-size:14.00;">Bl</text>
</a>
</g>
<g id="edge51" class="edge"><title>Re->Bl</title>
<path style="fill:none;stroke:black;" d="M324,-360C322,-328 312,-260 279,-216 272,-206 249,-192 229,-181"/>
<polygon style="fill:black;stroke:black;" points="230.441,-177.797 220,-176 227.042,-183.916 230.441,-177.797"/>
</g>
<g id="node31" class="node"><title>MkSR</title>
<a xlink:href="http://ncatlab.org/nlab/show/Mackey topological vector space" xlink:title="Mackey and Semi-Reflexive">
<ellipse style="fill:#ffbbff;stroke:black;" cx="353" cy="-306" rx="7" ry="7"/>
</a>
</g>
<g id="edge53" class="edge"><title>Re->MkSR</title>
<path style="fill:none;stroke:black;" d="M332,-360C337,-349 342,-334 346,-323"/>
<polygon style="fill:black;stroke:black;" points="349.536,-323.585 350,-313 343.036,-320.985 349.536,-323.585"/>
</g>
<g id="node27" class="node"><title>SR</title>
<a xlink:href="http://ncatlab.org/nlab/show/semi-reflexive topological vector space" xlink:title="Semi-Reflexive">
<polygon style="fill:#ffbbff;stroke:black;" points="380,-252 326,-252 326,-216 380,-216 380,-252"/>
<text fill="#008B26" text-anchor="middle" x="353" y="-229.9" style="font-family:Times New Roman;font-size:14.00;">SR</text>
</a>
</g>
<g id="edge79" class="edge"><title>SR->QC</title>
<path style="fill:none;stroke:black;" d="M331,-216C320,-207 307,-196 295,-186"/>
<polygon style="fill:black;stroke:black;" points="297.1,-183.2 287,-180 292.9,-188.8 297.1,-183.2"/>
</g>
<g id="node29" class="node"><title>Mk</title>
<a xlink:href="http://ncatlab.org/nlab/show/Mackey topological vector space" xlink:title="Mackey">
<polygon style="fill:#ffbbff;stroke:black;" points="220,-36 166,-36 166,-1.06581e-14 220,-0 220,-36"/>
<text fill="#008B26" text-anchor="middle" x="193" y="-13.9" style="font-family:Times New Roman;font-size:14.00;">Mk</text>
</a>
</g>
<g id="edge49" class="edge"><title>QB->Mk</title>
<path style="fill:none;stroke:black;" d="M193,-72C193,-64 193,-55 193,-46"/>
<polygon style="fill:black;stroke:black;" points="196.5,-46 193,-36 189.5,-46 196.5,-46"/>
</g>
<g id="edge47" class="edge"><title>Bl->QB</title>
<path style="fill:none;stroke:black;" d="M193,-144C193,-136 193,-127 193,-118"/>
<polygon style="fill:black;stroke:black;" points="196.5,-118 193,-108 189.5,-118 196.5,-118"/>
</g>
<g id="edge59" class="edge"><title>MkSR->SR</title>
<path style="fill:none;stroke:black;" d="M353,-299C353,-290 353,-275 353,-262"/>
<polygon style="fill:black;stroke:black;" points="356.5,-262 353,-252 349.5,-262 356.5,-262"/>
</g>
<g id="edge57" class="edge"><title>MkSR->Mk</title>
<path style="fill:none;stroke:black;" d="M358,-301C366,-292 383,-272 389,-252 394,-236 394,-231 389,-216 369,-143 357,-122 301,-72 301,-71 260,-51 229,-35"/>
<polygon style="fill:black;stroke:black;" points="230.56,-31.8631 220,-31 227.717,-38.2598 230.56,-31.8631"/>
</g>
<g id="edge71" class="edge"><title>QCQB->QC</title>
<path style="fill:none;stroke:black;" d="M196,-229C199,-225 203,-220 207,-216 216,-206 227,-196 236,-187"/>
<polygon style="fill:black;stroke:black;" points="238.779,-189.219 244,-180 234.169,-183.951 238.779,-189.219"/>
</g>
<g id="edge55" class="edge"><title>QCQB->Bl</title>
<path style="fill:none;stroke:black;" d="M191,-227C192,-218 192,-203 192,-190"/>
<polygon style="fill:black;stroke:black;" points="195.488,-190.299 193,-180 188.522,-189.602 195.488,-190.299"/>
</g>
<g id="edge15" class="edge"><title>ReBa->Ba</title>
<path style="fill:none;stroke:black;" d="M170,-588C162,-580 148,-563 135,-548"/>
<polygon style="fill:black;stroke:black;" points="137.219,-545.221 128,-540 131.951,-549.831 137.219,-545.221"/>
</g>
<g id="edge73" class="edge"><title>ReBa->ReFr</title>
<path style="fill:none;stroke:black;" d="M175,-587C176,-576 177,-555 177,-539"/>
<polygon style="fill:black;stroke:black;" points="180.488,-539.299 178,-529 173.522,-538.602 180.488,-539.299"/>
</g>
<g id="edge77" class="edge"><title>ReFr->Fr</title>
<path style="fill:none;stroke:black;" d="M177,-515C176,-506 175,-491 174,-478"/>
<polygon style="fill:black;stroke:black;" points="177.478,-477.602 173,-468 170.512,-478.299 177.478,-477.602"/>
</g>
<g id="edge75" class="edge"><title>ReFr->Re</title>
<path style="fill:none;stroke:black;" d="M182,-516C191,-500 216,-459 245,-432 258,-420 275,-408 289,-398"/>
<polygon style="fill:black;stroke:black;" points="290.958,-400.916 298,-393 287.559,-394.797 290.958,-400.916"/>
</g>
<g id="node79" class="node"><title>yFD</title>
</g>
<g id="node83" class="node"><title>yHi</title>
</g>
<g id="node93" class="node"><title>xFD</title>
<a xlink:href="http://ncatlab.org/nlab/show/Finite-Dimensional topological vector space" xlink:title="FD: Finite-Dimensional">
<polygon style="fill:#ffffbb;stroke:black;" points="628,-684 456,-684 456,-648 628,-648 628,-684"/>
<text fill="#008B26" text-anchor="middle" x="542" y="-661.9" style="font-family:Times New Roman;font-size:14.00;">FD: Finite-Dimensional</text>
</a>
</g>
<g id="node80" class="node"><title>yDF</title>
<polygon style="fill:none;stroke:black;" points="941,-756 823,-756 823,-720 941,-720 941,-756"/>
<text fill="#008B26" text-anchor="middle" x="882" y="-733.9" style="font-family:Times New Roman;font-size:14.00;">Key to symbols</text>
</g>
<g id="node103" class="node"><title>yNo</title>
</g>
<g id="node112" class="node"><title>xDF</title>
<a xlink:href="http://ncatlab.org/nlab/show/DF topological vector space" xlink:title="DF: DF">
<polygon style="fill:#ffffbb;stroke:black;" points="938,-684 876,-684 876,-648 938,-648 938,-684"/>
<text fill="#008B26" text-anchor="middle" x="907" y="-661.9" style="font-family:Times New Roman;font-size:14.00;">DF: DF</text>
</a>
</g>
<g id="node81" class="node"><title>yPt</title>
</g>
<g id="node121" class="node"><title>yBC</title>
</g>
<g id="node130" class="node"><title>xPt</title>
<a xlink:href="http://ncatlab.org/nlab/show/Ptak space" xlink:title="Pt: Ptak Space">
<polygon style="fill:#bbffff;stroke:black;" points="1366,-684 1250,-684 1250,-648 1366,-648 1366,-684"/>
<text fill="#008B26" text-anchor="middle" x="1308" y="-661.9" style="font-family:Times New Roman;font-size:14.00;">Pt: Ptak Space</text>
</a>
</g>
<g id="node84" class="node"><title>yNu</title>
</g>
<g id="node94" class="node"><title>xHi</title>
<a xlink:href="http://ncatlab.org/nlab/show/Hilbert space" xlink:title="Hi: Hilbert (technically, admits a Hilbertian structure)">
<polygon style="fill:#ffffbb;stroke:black;" points="838,-612 456,-612 456,-576 838,-576 838,-612"/>
<text fill="#008B26" text-anchor="middle" x="647" y="-589.9" style="font-family:Times New Roman;font-size:14.00;">Hi: Hilbert (technically, admits a Hilbertian structure)</text>
</a>
</g>
<g id="node85" class="node"><title>yBa</title>
</g>
<g id="node95" class="node"><title>xNu</title>
<a xlink:href="http://ncatlab.org/nlab/show/Nuclear space" xlink:title="Nu: Nuclear">
<polygon style="fill:#ffffbb;stroke:black;" points="552,-540 456,-540 456,-504 552,-504 552,-540"/>
<text fill="#008B26" text-anchor="middle" x="504" y="-517.9" style="font-family:Times New Roman;font-size:14.00;">Nu: Nuclear</text>
</a>
</g>
<g id="node86" class="node"><title>yIP</title>
</g>
<g id="node96" class="node"><title>xBa</title>
<a xlink:href="http://ncatlab.org/nlab/show/Banach space" xlink:title="Ba: Banach (technically, complete and normable)">
<polygon style="fill:#ffffbb;stroke:black;" points="808,-468 456,-468 456,-432 808,-432 808,-468"/>
<text fill="#008B26" text-anchor="middle" x="632" y="-445.9" style="font-family:Times New Roman;font-size:14.00;">Ba: Banach (technically, complete and normable)</text>
</a>
</g>
<g id="node87" class="node"><title>yMo</title>
</g>
<g id="node97" class="node"><title>xIP</title>
<a xlink:href="http://ncatlab.org/nlab/show/inner-product space" xlink:title="IP: Topology from an inner-product">
<polygon style="fill:#ffffbb;stroke:black;" points="710,-396 456,-396 456,-360 710,-360 710,-396"/>
<text fill="#008B26" text-anchor="middle" x="583" y="-373.9" style="font-family:Times New Roman;font-size:14.00;">IP: Topology from an inner-product</text>
</a>
</g>
<g id="node88" class="node"><title>ySc</title>
</g>
<g id="node98" class="node"><title>xMo</title>
<a xlink:href="http://ncatlab.org/nlab/show/Montel space" xlink:title="Mo: Montel">
<polygon style="fill:#ffffbb;stroke:black;" points="548,-324 456,-324 456,-288 548,-288 548,-324"/>
<text fill="#008B26" text-anchor="middle" x="502" y="-301.9" style="font-family:Times New Roman;font-size:14.00;">Mo: Montel</text>
</a>
</g>
<g id="node89" class="node"><title>yUB</title>
</g>
<g id="node99" class="node"><title>xSc</title>
<a xlink:href="http://ncatlab.org/nlab/show/Schwartz space" xlink:title="Sc: Schwartz">
<polygon style="fill:#ffffbb;stroke:black;" points="562,-252 456,-252 456,-216 562,-216 562,-252"/>
<text fill="#008B26" text-anchor="middle" x="509" y="-229.9" style="font-family:Times New Roman;font-size:14.00;">Sc: Schwartz</text>
</a>
</g>
<g id="node90" class="node"><title>yFr</title>
</g>
<g id="node100" class="node"><title>xUB</title>
<a xlink:href="http://ncatlab.org/nlab/show/ultrabornological topological vector space" xlink:title="UB: Ultrabornological">
<polygon style="fill:#ffffbb;stroke:black;" points="618,-180 456,-180 456,-144 618,-144 618,-180"/>
<text fill="#008B26" text-anchor="middle" x="537" y="-157.9" style="font-family:Times New Roman;font-size:14.00;">UB: Ultrabornological</text>
</a>
</g>
<g id="node91" class="node"><title>yZ1</title>
</g>
<g id="node101" class="node"><title>xFr</title>
<a xlink:href="http://ncatlab.org/nlab/show/Fréchet space" xlink:title="Fr: Fréchet">
<polygon style="fill:#ffffbb;stroke:black;" points="546,-108 456,-108 456,-72 546,-72 546,-108"/>
<text fill="#008B26" text-anchor="middle" x="501" y="-85.9" style="font-family:Times New Roman;font-size:14.00;">Fr: Fréchet</text>
</a>
</g>
<g id="node104" class="node"><title>yBo</title>
</g>
<g id="node113" class="node"><title>xNo</title>
<a xlink:href="http://ncatlab.org/nlab/show/normed vector space" xlink:title="No: Normable space">
<polygon style="fill:#ffffbb;stroke:black;" points="1028,-612 876,-612 876,-576 1028,-576 1028,-612"/>
<text fill="#008B26" text-anchor="middle" x="952" y="-589.9" style="font-family:Times New Roman;font-size:14.00;">No: Normable space</text>
</a>
</g>
<g id="node105" class="node"><title>yLF</title>
</g>
<g id="node114" class="node"><title>xBo</title>
<a xlink:href="http://ncatlab.org/nlab/show/bornological topological vector space" xlink:title="Bo: Bornological">
<polygon style="fill:#ffffbb;stroke:black;" points="1002,-540 876,-540 876,-504 1002,-504 1002,-540"/>
<text fill="#008B26" text-anchor="middle" x="939" y="-517.9" style="font-family:Times New Roman;font-size:14.00;">Bo: Bornological</text>
</a>
</g>
<g id="node106" class="node"><title>yLB</title>
</g>
<g id="node115" class="node"><title>xLF</title>
<a xlink:href="http://ncatlab.org/nlab/show/LF space" xlink:title="LF: strict inductive sequence of Fréchet spaces">
<polygon style="fill:#ffffbb;stroke:black;" points="1212,-468 876,-468 876,-432 1212,-432 1212,-468"/>
<text fill="#008B26" text-anchor="middle" x="1044" y="-445.9" style="font-family:Times New Roman;font-size:14.00;">LF: strict inductive sequence of Fréchet spaces</text>
</a>
</g>
<g id="node107" class="node"><title>yMe</title>
</g>
<g id="node116" class="node"><title>xLB</title>
<a xlink:href="http://ncatlab.org/nlab/show/LB space" xlink:title="LB: strict inductive sequence of Banach spaces">
<polygon style="fill:#ffffbb;stroke:black;" points="1212,-396 876,-396 876,-360 1212,-360 1212,-396"/>
<text fill="#008B26" text-anchor="middle" x="1044" y="-373.9" style="font-family:Times New Roman;font-size:14.00;">LB: strict inductive sequence of Banach spaces</text>
</a>
</g>
<g id="node108" class="node"><title>yLC</title>
</g>
<g id="node117" class="node"><title>xMe</title>
<a xlink:href="http://ncatlab.org/nlab/show/metrisable topological vector space" xlink:title="Me: Metrisable">
<polygon style="fill:#ffffbb;stroke:black;" points="992,-324 876,-324 876,-288 992,-288 992,-324"/>
<text fill="#008B26" text-anchor="middle" x="934" y="-301.9" style="font-family:Times New Roman;font-size:14.00;">Me: Metrisable</text>
</a>
</g>
<g id="node109" class="node"><title>yQC</title>
</g>
<g id="node118" class="node"><title>xLC</title>
<a xlink:href="http://ncatlab.org/nlab/show/locally complete topological vector space" xlink:title="LC: Locally Complete">
<polygon style="fill:#bbffff;stroke:black;" points="1036,-252 876,-252 876,-216 1036,-216 1036,-252"/>
<text fill="#008B26" text-anchor="middle" x="956" y="-229.9" style="font-family:Times New Roman;font-size:14.00;">LC: Locally Complete</text>
</a>
</g>
<g id="node110" class="node"><title>yZ2</title>
</g>
<g id="node119" class="node"><title>xQC</title>
<a xlink:href="http://ncatlab.org/nlab/show/quasi-complete topological vector space" xlink:title="QC: Quasi-Complete">
<polygon style="fill:#bbffff;stroke:black;" points="1032,-180 876,-180 876,-144 1032,-144 1032,-180"/>
<text fill="#008B26" text-anchor="middle" x="954" y="-157.9" style="font-family:Times New Roman;font-size:14.00;">QC: Quasi-Complete</text>
</a>
</g>
<g id="node122" class="node"><title>ySq</title>
</g>
<g id="node131" class="node"><title>xBC</title>
<a xlink:href="http://ncatlab.org/nlab/show/Ptak space" xlink:title="BC: Br Space">
<polygon style="fill:#bbffff;stroke:black;" points="1354,-612 1250,-612 1250,-576 1354,-576 1354,-612"/>
<text fill="#008B26" text-anchor="middle" x="1302" y="-589.9" style="font-family:Times New Roman;font-size:14.00;">BC: Br Space</text>
</a>
</g>
<g id="node123" class="node"><title>yCp</title>
</g>
<g id="node132" class="node"><title>xSq</title>
<a xlink:href="http://ncatlab.org/nlab/show/sequentially complete topological vector space" xlink:title="Sq: Sequentially Complete">
<polygon style="fill:#bbffff;stroke:black;" points="1448,-540 1250,-540 1250,-504 1448,-504 1448,-540"/>
<text fill="#008B26" text-anchor="middle" x="1349" y="-517.9" style="font-family:Times New Roman;font-size:14.00;">Sq: Sequentially Complete</text>
</a>
</g>
<g id="node124" class="node"><title>yRe</title>
</g>
<g id="node133" class="node"><title>xCp</title>
<a xlink:href="http://ncatlab.org/nlab/show/complete topological vector space" xlink:title="Cp: Complete">
<polygon style="fill:#bbffff;stroke:black;" points="1358,-468 1250,-468 1250,-432 1358,-432 1358,-468"/>
<text fill="#008B26" text-anchor="middle" x="1304" y="-445.9" style="font-family:Times New Roman;font-size:14.00;">Cp: Complete</text>
</a>
</g>
<g id="node125" class="node"><title>ySR</title>
</g>
<g id="node134" class="node"><title>xRe</title>
<a xlink:href="http://ncatlab.org/nlab/show/reflexive topological vector space" xlink:title="Re: Reflexive">
<polygon style="fill:#ffbbff;stroke:black;" points="1354,-396 1250,-396 1250,-360 1354,-360 1354,-396"/>
<text fill="#008B26" text-anchor="middle" x="1302" y="-373.9" style="font-family:Times New Roman;font-size:14.00;">Re: Reflexive</text>
</a>
</g>
<g id="node126" class="node"><title>yQB</title>
</g>
<g id="node135" class="node"><title>xSR</title>
<a xlink:href="http://ncatlab.org/nlab/show/semi-reflexive topological vector space" xlink:title="SR: Semi-Reflexive">
<polygon style="fill:#ffbbff;stroke:black;" points="1394,-324 1250,-324 1250,-288 1394,-288 1394,-324"/>
<text fill="#008B26" text-anchor="middle" x="1322" y="-301.9" style="font-family:Times New Roman;font-size:14.00;">SR: Semi-Reflexive</text>
</a>
</g>
<g id="node127" class="node"><title>yMk</title>
</g>
<g id="node136" class="node"><title>xQB</title>
<a xlink:href="http://ncatlab.org/nlab/show/quasi-barrelled topological vector space" xlink:title="QB: Quasi-Barrelled">
<polygon style="fill:#ffbbff;stroke:black;" points="1402,-252 1250,-252 1250,-216 1402,-216 1402,-252"/>
<text fill="#008B26" text-anchor="middle" x="1326" y="-229.9" style="font-family:Times New Roman;font-size:14.00;">QB: Quasi-Barrelled</text>
</a>
</g>
<g id="node128" class="node"><title>yBl</title>
</g>
<g id="node137" class="node"><title>xMk</title>
<a xlink:href="http://ncatlab.org/nlab/show/Mackey topological vector space" xlink:title="Mk: Mackey">
<polygon style="fill:#ffbbff;stroke:black;" points="1346,-180 1250,-180 1250,-144 1346,-144 1346,-180"/>
<text fill="#008B26" text-anchor="middle" x="1298" y="-157.9" style="font-family:Times New Roman;font-size:14.00;">Mk: Mackey</text>
</a>
</g>
<g id="node129" class="node"><title>yZ3</title>
</g>
<g id="node138" class="node"><title>xBl</title>
<a xlink:href="http://ncatlab.org/nlab/show/barrelled topological vector space" xlink:title="Bl: Barrelled">
<polygon style="fill:#ffbbff;stroke:black;" points="1350,-108 1250,-108 1250,-72 1350,-72 1350,-108"/>
<text fill="#008B26" text-anchor="middle" x="1300" y="-85.9" style="font-family:Times New Roman;font-size:14.00;">Bl: Barrelled</text>
</a>
</g>
</g>
</svg>

category: svg


diagrammatic knot theory

\tableofcontents

\section{Introduction}

_Diagrammatic knot theory_ is an approach to [[knot theory]] and surrounding fields in which [[link diagrams]] and generalisations are the principal means with which one works with [[knots]], [[links]], [[3-manifolds]], and other objects in [[geometric topology]]. It has a highly combinatorial and pictorial, and sometimes also elementary, flavour.

\section{Starting point}

The fundamental result, akin to the [[Nullstellensatz]] in algebraic geometry for instance, which makes this approach to knot theory possible is [[Reidemeister's theorem]].

\section{Invariants}

Invariants in diagrammatic knot theory are typically obtained by proving invariance under the [[Reidemeister moves]] or other collections of moves (usually including at least some of the Reidemeister moves).

\section{Purely diagrammatic fields}

Some modern flavours of knot theory, such as [[virtual knot theory]], are _defined_ diagrammatically, although geometric interpretations have sometimes later been found.

category: knot theory


diagrammatic order > history

< [[diagrammatic order]]


Diagrammes

_Diagrammes_ was a series of internal publications /  preprint collections of some of the [[category theory|category theorists]] based in Paris. It continued in part the _[[Esquisses mathématiques]]_ produced by [[Charles Ehresmann]] and his groups in Paris and Amiens. The collection can be found [here](http://www.numdam.org/journals/DIA/).


Dialectica interpretation

#Contents#
* table of contents
{:toc}

## Idea

In [[proof theory]], the Gödel's **Dialectica interpretation** is a proof interpretation of intuitionistic arithmetic ([[Heyting arithmetic]]) into a finite type extension of [[primitive recursive arithmetic]].  It was reinterpreted by [de Paiva](#DePaiva) as a construction (actually, multiple related constructions) on [[categories]], related to (but distinct from) the [[Chu construction]].

## Examples

* Kohlenbach's Proof Mining Program: A systematic development of specially designed versions of functional interpretations (Dialectica is the prime example) and their use in numerical analysis, functional analysis, metric
fixed point theory and geodesic geometry. See _Gödel’s functional interpretation and its use in current mathematics_. https://www2.mathematik.tu-darmstadt.de/~kohlenbach/centenary.pdf

* Certain cardinal invariants of the continuum in [[ZFC]] [[set theory]] can be expressed and proven using Dialectica categories; see [da Silva and de Paiva](#dsdp).

## Related pages

* [[linear type theory]]
* [[lens (in computer science)]]
* [[Chu construction]]

## References

The original Dialectica construction in proof theory is due to:

* [[Kurt Gödel]], _Über eine bisher noch nicht benützte Erweiterung des finiten Standpunktes_. Dialectica (1958), pp. 280–287.

Other work in proof theory:

* Avigad and Feferman, _Gödel’s Functional (“Dialectica”) Interpretation_. Available from https://www.andrew.cmu.edu/user/avigad/Papers/dialect.pdf.

The categorical construction originally appeared in

* {#DePaiva} [[Valeria de Paiva]], _The Dialectica Categories_. University of Cambridge, Computer Laboratory, PhD Thesis, Technical Report 213, 1991 ([pdf](https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-213.pdf)).

and has been studied further by de Paiva and many others.

  For comparisons to the Chu construction, see

* [[Valeria de Paiva]], _Dialectica and Chu Constructions: Cousins?_, Theory and Applications of Categories, Vol. 17, 2006, No. 7, pp 127-152., [link](http://www.tac.mta.ca/tac/volumes/17/7/17-07abs.html)

* [[Mike Shulman]], _The 2-Chu-Dialectica construction and the polycategory of multivariable adjunctions_, Theory and Applications of Categories, Vol. 35, 2020, No. 4, pp 89-136. [link](http://tac.mta.ca/tac/volumes/35/4/35-04abs.html)

Application to cardinal invariants in set theory is discussed in

* {#dsdp} Samuel da Silva, [[Valeria de Paiva]], _Dialectical categories, cardinalities of the continuum and combinatorics of ideals_, Logic Journal of the IGPL, Volume 25, Issue 4, August 2017, Pages 585–603, [https://doi.org/10.1093/jigpal/jzx016](https://doi.org/10.1093/jigpal/jzx016)

[[!redirects Dialectica category]]
[[!redirects Dialectica categories]]
[[!redirects Dialectica construction]]


dialetheism

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Philosophy
+-- {: .hide}
[[!include philosophy - contents]]
=--
=--
=--

# Contents
* table of contents
{: toc}

## Idea

Dialetheism is the view that there are statements that are both true and false.

## See also

* [[paraconsistent logic]]

## References

* [[Gottlob Frege]]. "Negation." *Logical Investigations*. Trans. P. Geach and R. H Stoothoff. New Haven, Conn.: Yale University Press, 1977. 31–53.

* Terence Parsons. "Assertion, Denial, and the Liar Paradox." *Journal of Philosophical Logic* 13 (1984): 137–152.

* Terence Parsons. "[True Contradictions](https://www.tandfonline.com/doi/pdf/10.1080/00455091.1990.10716495)." *Canadian Journal of Philosophy* 20 (1990): 335–354.

* Graham Priest. *In Contradiction*. Dordrecht: Martinus Nijhoff (1987). (Second Edition, Oxford: Oxford University Press, 2006.)

* Graham Priest. "What Is So Bad About Contradictions?" *Journal of Philosophy* 95 (1998): 410–426.

* Bruno Whittle. "[Dialetheism, logical consequence and hierarchy](https://ora.ox.ac.uk/objects/uuid:88139a8f-646b-4927-bc9d-5af0e869bf99/download_file?safe_filename=Dialetheism%252C%2Blogical%2Bconsequence%2Band%2Bhierarchy&file_format=application%2Fpdf&type_of_work=Journal+article)." *Analysis* Vol. 64 Issue 4 (2004): 318–326.

* Jc Beall in *The Law of Non-Contradiction: New Philosophical Essays* (Oxford: Oxford University Press, 2004), pp. 197–219.

See also

* Wikipedia, [Dialetheism](https://en.wikipedia.org/wiki/Dialetheism)


dialgebra

[[!redirects dialgebras]]

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Category theory
+-- {: .hide}
[[!include category theory - contents]]
=--
#### Algebra
+--{: .hide}
[[!include higher algebra - contents]]
=--
=--
=--

# Contents
* table of contents
{: toc}

## Idea

_Dialgebras_ subsume the notion of [[algebras for an endofunctor]] and [[coalgebras for an endofunctor]]. Universal dialgebras were originally introduced by Lambek as "subequalizers".

Disambiguation: For different notions of certain algebraic structures involving two algebraic operations introduced by [[Jean-Louis Loday]] and his school see [[associative dialgebra]] and [[dendriform dialgebra]].

## Definition

+-- {: .num_defn}
###### Definition

For [[categories]] $C, D$ and [[functors]] $F, G: C \to D$, a __dialgebra__ of $F$ and $G$ (or an $(F, G)$-dialgebra) is an [[object]] $X$ in $C$ (the __carrier__) and a [[morphism]] $\alpha\colon F(X) \to G(X)$.

A [[homomorphism]] between two $(F, G)$-dialgebras $(X, \alpha)$ and $(Y, \beta)$ is a morphism $m\colon X \to Y$ in $C$ such that the following [[commuting diagram|square commutes]] (that is, that $\alpha$ and $\beta$ form $X$- and $Y$-components of a [[natural transformation]] from $F$ to $G$):

$$
  \array{
    F(X)
    &
    \stackrel{F(m)}{\rightarrow}
    &
    F(Y)
    \\
    \alpha\downarrow
    &&
    \downarrow \beta
    \\ G(X)
    &
    \stackrel{G(m)}{\rightarrow} & G(Y)
  }
  \,.
$$

[[composition|Composition]] of such morphisms of algebras is given by composition of the underlying morphisms in $C$.  This yields the [[category]] of $(F, G)$-dialgebras, $\text{Dialg}(F, G)$, which comes with a forgetful functor to $C$.
=--

+-- {: .num_remark}
###### Remark

When $C = D$, then an [[algebra for an endofunctor]] is simply an $(F, id_C)$-dialgebra and a [[coalgebra for an endofunctor]] is simply an $(id_C, F)$-dialgebra.

=--

+-- {: .num_remark}
###### Remark
Abstractly, the category of dialgebras is the [[inserter]] of $F$ and $G$ in the [[2-category]] [[Cat]].
=--

## Relationship to inductive-inductive types

Initial dialgebras provide [[categorical semantics]] for [[inductive-inductive types]].

## Relationship to program semantics (process calculi)

Dialgebras can be used to provide semantics to interactive programs; [[coalgebras]] have also been frequently used for the purpose. In contrast, dialgebras provide a natural way to express interactions (using the functor $F$). Semantics in dialgebras is not obtained via final objects (which are frequently absent in categories of dialgebras), but rather via quotients.

## Related concepts

* [[algebra for an endofunctor]], [[coalgebra over an endofunctor]]

* [[algebra for a profunctor]]

* [[inserter]]

## References

* {#subeq} [[Joachim Lambek]], _Subequalizers_, 1970

* Erik Poll, Jan Zwanenburg, _From Algebras and Coalgebras to Dialgebras_, Electronic Notes in Theoretical Computer Science 44(1), May 2001, 289-307, ([doi:10.1016/S1571-0661(04)80915-0](https://doi.org/10.1016/S1571-0661%2804%2980915-0)).

* {#lam} [[Tatsuya Hagino]], _A Typed Lambda Calculus with Categorical Type Constructors_, 2005, [link](https://link.springer.com/chapter/10.1007/3-540-18508-9_24)

* {#cat} [[Thorsten Altenkirch]], Peter Morris, [[Fredrik Nordvall Forsberg]], [[Anton Setzer]],  _A Categorical Semantics for Inductive-Inductive Definitions_, CALCO, 2011 [link](https://link.springer.com/chapter/10.1007%2F978-3-642-22944-2_6)

* {#ccs} Vincenzo Ciancia, _Interaction and Observation: Categorical Semantics of Reactive Systems Trough Dialgebras_, CALCO, 2013 [link](https://link.springer.com/chapter/10.1007%2F978-3-642-40206-7_10)

* {#abthesis} Alwin Blok, _Interaction, observation and denotation.
A study of dialgebras for program semantics_ Master Thesis, Institute for Logic, Language and Computation, University of Amsterdam. [link](https://eprints.illc.uva.nl/872/1/MoL-2012-06.text.pdf)

* Jim de Groot, Dirk Pattinson, _Modal Intuitionistic Logics as Dialgebraic Logics_, LICS '20: Proceedings of the 35th Annual ACM/IEEE Symposium on Logic in Computer Science July 2020, 355–369 ([doi:10.1145/3373718.3394807](https://doi.org/10.1145/3373718.3394807)).

A dialgebraic account of [[labeled transition systems]] is in

* Fabrizio Montesi, Marco Peressotti, _Linear Logic, the $\pi$-calculus, and their Metatheory: A Recipe for Proofs as Processes_ ([arXiv:2106.11818](https://arxiv.org/abs/2106.11818))

[[!redirects dialgebras]]
[[!redirects subequalizer]]
[[!redirects subequalizers]]
[[!redirects subequaliser]]
[[!redirects subequalisers]]


diamond

# Diamonds
* table of contents
{: toc}

## Definition

In [[graph theory]], by a  _diamond_ one means a finite [[directed graph]] without oriented cycles which is a union of two (directed) chains with common minimum and common maximum (some other intermediate points and even edges may be in common as well).

## Completing spans to diamonds

It is often interesting wheather a given [[span]] in some partial ordered set can be completed into a diamond. The property of a collection of spans to consist of spans which are expandable into diamonds is very useful in the theory of [[rewriting]] systems and producing normal forms in algebra. There are classical results e.g. Newman's diamond lemma ([wikipedia](https://en.wikipedia.org/wiki/Newman%27s_lemma)), Širšov-Bergman's diamond lemma (Širšov is also sometimes spelled as Shirshov), and [[Church-Rosser theorem]] (and the corresponding Church-Rosser [[confluent category|confluence property]]).

* [[Alonzo Church]], J. Barkley Rosser, _Some properties of conversion_,  Trans. AMS __39__, No. 3. (May 1936), pp. 472–482, ([jstor](http://www.jstor.org/stable/1989762))

* [[Anatoly Shirshov|A. I. Širšov]], _Some algorithm problems for Lie algebras_ (Russian)
Sibirsk. Mat. Ž. __3__ 1962, 292--296, [MR0183753](http://www.ams.org/mathscinet-getitem?mr=0183753)

* [[George M. Bergman]], Adam O. Hausknecht, _The diamond lemma for ring theory_, Advances in Mathematics __29__ (1978) 178-218, (doi)

* L. A. Bokutʹ, I. P. Shestakov, _Some results by A. I. Shirshov and his school_,  Second International Conference on Algebra (Barnaul, 1991),  1--12, Contemp. Math. __184__, Amer. Math. Soc. 1995.

* L. A. Bokut', _Unsolvability of the word problem and subalgebras of finitely presented Lie algebras_, Izv. Akad. Nauk S.S.S.R. Ser. Mat. __36__ (1972), 1173-1219 (Russian).

See [[zoranskoda:diamond lemma]] and the discussion starting [here](http://nforum.ncatlab.org/discussion/1538/new-mathematics-contents/?Focus=13776#Comment_13776).

* L. A. Bokut, Y. Fong, W-F. Ke, _Composition-diamond lemma for associative conformal algebras_, J. Algebra __272__  (2004),  no. 2, 739--774.

* Vladimir Dotsenko, Pedro Tamaroff, _Tangent complexes and the Diamond Lemma_, [arxiv/2010.14792](https://arxiv.org/abs/2010.14792)

> The celebrated Diamond Lemma of Bergman gives an effectively verifiable criterion of uniqueness of normal forms for term rewriting in associative algebras. We present a new way to interpret and prove this result from the viewpoint of homotopical algebra. Our main result states that every multiplicative free resolution of an algebra with monomial relations gives rise to its own Diamond Lemma, so that Bergman's condition of "resolvable ambiguities" becomes the first non-trivial component of the Maurer--Cartan equation in the corresponding tangent complex. The same approach works for many other algebraic structures, emphasizing the relevance of computing multiplicative free resolutions of algebras with monomial relations.

## Other notion of a diamond

Distinguish from the 5-edge 4-point [undirected diamond graph](http://en.wikipedia.org/wiki/Diamond_graph).

## Related entries

* [[Newman's diamond lemma]]

[[!redirects diamond]]
[[!redirects diamonds]]


diamond lemma

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Algebra
+--{: .hide}
[[!include higher algebra - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

(...)

## References

The original reference:

* [[George M. Bergman]], _The diamond lemma for ring theory_, Advances in Mathematics **29** 2 (1978) 178-218 [doi:10.1016/0001-8708(78)90010-5]

Review:

* Takao Inoué, *On Bergman's Diamond Lemma for Ring Theory*, Journal of Mathematical Techniques and Computational Mathematics (2023)  [[arXiv:2007.13845](https://arxiv.org/abs/2007.13845), [pdf](https://www.opastpublishers.com/open-access-articles/on-bergmans-diamond-lemma-for-ring-theory.pdf)]

* Wikipedia, *[Bergman's diamond lemma](https://en.wikipedia.org/wiki/Bergman%27s_diamond_lemma)*

[[!redirects diamond lemmas]]


diamond principle

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Homological algebra
+--{: .hide}
[[!include homological algebra - contents]]
=--
#### Representation theory
+-- {: .hide}
[[!include representation theory - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

In [[zigzag persistence|zig-zag]] [[persistent homology]]-theory, the *diamond principle* ([Carlsson & de Silva 2010, Sec. 5.2](#CarlssonDeSilva10)) states that [[persistence diagrams]] of [[pairs]] of [[zigzag persistence modules]] are [[bijection|bijective]] if the modules coincide away from two consecutive [[edges]] where their difference forms an "exact diamond".

Applied specifically to [[persistence modules]] given by the [[homology groups]] of [[zig-zags]] of [[topological spaces]], the diamond principle is an incarnation of the [[Mayer-Vietoris sequence]] in [[algebraic topology]].

In this case it says that the two canonical [[zigzag persistence modules]] associated with a [[filtered topological space]] (one built from [[union]]-[[zigzags]], the other from [[intersection]]-[[zigzags]]) in fact yield the same [[persistence diagrams]].

Notice how the diamond principle is a result genuinely about persistent invariants, in that the two persistence modules forming an exact diamond do not have the same shape as [[diagrams]] and hence are *non-comparable* when regarded, say, as [[quiver representations]] (since they are [[objects]] of *distinct* [[categories]]).

## Related concepts

* [[stability of persistence diagrams]]

## References

The diamond principle originates in

* {#CarlssonDeSilva10} [[Gunnar Carlsson]], [[Vin de Silva]], Section 5.2 of *Zigzag Persistence*, Found Comput Math **10** (2010) 367–405 $[$[arXiv:0812.0197](https://arxiv.org/abs/0812.0197), [doi:10.1007/s10208-010-9066-0](https://doi.org/10.1007/s10208-010-9066-0)$]$

Review:

* [[Sara Kališnik]], Sections 1.3-1.4 in: *Persistent homology and duality* (2013) ([pdf](http://www.matknjiz.si/doktorati/2013/Kalisnik-14521-4.pdf), [[KalisnikPersistent.pdf:file]])

[[!redirects diamond principles]]


Diana Rodelo

* [GoogleScholar page](https://scholar.google.com/citations?user=0bsSqiIAAAAJ&hl=en)

## Selected writings

On [[Goursat categories]]:

* [[Marino Gran]], [[Diana Rodelo]], *A New Characterisation of Goursat Categories*, Applied Categorical Structures **20** (2012) 229–238 [[doi:10.1007/s10485-010-9236-x](https://doi.org/10.1007/s10485-010-9236-x)]

On the [[Beck-Chevalley condition]] in [[Goursat categories]]:

* [[Marino Gran]], [[Diana Rodelo]], *Beck-Chevalley condition and Goursat categories*, Journal of Pure and Applied Algebra **221** 10 (2017) 2445-2457 [[arXiv:1512.04066](https://arxiv.org/abs/1512.04066), [doi:10.1016/j.jpaa.2016.12.031](https://doi.org/10.1016/j.jpaa.2016.12.031)]

category: people