center of a category

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

#Contents#
* table of contents
{:toc}

## Idea

The notion of *[[center]] of a [[monoid]]* has a [[horizontal categorification]] to a notion of *center of a category*.

## Definition

For $\mathcal{C}$ a [[category]], its *center* $Z(\mathcal{C})$ is defined to be the [[commutative monoid]]

$$
  Z(\mathcal{C})
  \;\coloneqq\;
  [\mathcal{C},\mathcal{C}]\big(
    Id_\mathcal{C}
    ,\,
    Id_\mathcal{C}
  \big)
$$

of [[endomorphism|endo]]-[[natural transformation]] of the [[identity functor]] $Id_C \,\colon\, C \to C$, i.e. the [[endomorphism monoid]] of $Id_C$ in the [[functor category]] $[C,C]$.

If $\mathcal{C}$ carries extra [[structure]] this may be inhereted by its center. Notably the center of an [[additive category]] is not just a [[commutative monoid]] but a [[commutative ring]]: the [[endomorphism ring]] of the [[identity functor]]. For more on this see at *[[center of an additive category]]*.

## Examples

\begin{example}
  For $A$ an ordinary monoid and $\mathbf{B}A$ it [[delooping]]-category, the ordinary [[center]] of $A$ is naturally identified with the category theoretic center of $\mathbf{B}A$.
\end{example}

\begin{proposition}
For a [[generator]] $G$ of a [[category]] $\mathcal{C}$ there is an embedding of $Z(\mathcal{C})$ into the monoid $Hom(G,G)$ given by $\eta\mapsto\eta _G$. In particular, if $Hom(G,G)$ or $Z(Hom(G,G))$ is trivial, as happens e.g. for $Set$ with $G=\ast$, then so is $Z(\mathcal{C})$.
\end{proposition}
[[Hoffmann (1975)](#Hoffmann75)]

\begin{proposition}
For [[Cauchy completion|Cauchy complete]] $\mathcal{C}$ the [[idempotent]] elements of $Z(\mathcal{C})$ correspond precisely to the _quintessential localizations_ of $\mathcal{C}$.
\end{proposition}
[[Johnstone (1996)](#Johnstone96)]

## Related concepts

* [[center]], [[center of a monoid]]

* [[center of an additive category]]

* [[Drinfeld center]]

## References

* {#Hoffmann75} [[Rudolf-E. Hoffmann]], *Über das Zentrum einer Kategorie*, Math. Nachr. **68** (1975) 299-306 [[doi:10.1002/mana.19750680122](https://doi.org/10.1002/mana.19750680122)]

* {#Johnstone96} [[Peter Johnstone]], _Remarks on Quintessential and Persistent Localizations_, TAC **2** 8 (1996) 90-99. [[tac:2-08](http://www.tac.mta.ca/tac/volumes/1996/n8/2-08abs.html), [pdf](http://www.tac.mta.ca/tac/volumes/1996/n8/n8.pdf)]

See also:

* Wikipedia, *Center (category theory)*

[[!redirects centers of categories]]


center of a regular polygon

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

#Contents#
* table of contents
{:toc}

## Definition ##

Let $\mathcal{P}$ be a [[regular polygon]] in an [[Euclidean space]] $\mathbb{R}^n$, and let $\mathcal{E}$ be the [[subset]] of all [[points]] in $\mathbb{R}^n$ that is [[distance|equidistant]] from all [[vertices]] of the regular polygon.

The **center** of the regular polygon $\mathcal{P}$ is the unique point $p \in \mathcal{E}$ such that for any other point $q \in \mathcal{E}$, the distance from $p$ to a vertex of the polygon is less than or equal to the distance from $q$ to the same vertex of the polygon. The distance from the center of the regular polygon to a vertex of a regular polygon is called the **circumradius** of the regular polygon.

## See also ##

* [[regular polygon]]

## References

* Wikipedia, _[Regular polygon](https://en.wikipedia.org/wiki/Regular_polygon)

[[!redirects circumradius]]

[[!redirects centers of regular polygons]]


center of an additive category

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Additive and abelian categories
+--{: .hide}
[[!include additive and abelian categories - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea
 {#Idea}

Where the [[center of a category]] is in general just a [[commutative monoid]] (the [[endomorphism monoid]] of its [[identity functor]] formed in the [[functor category]]), for [[additive categories]] this commutative monoid carries the further [[structure]] of a [[commutative ring]]: the [[endomorphism ring]] of its identity functor.  (In fact this is also true for [[Ab-enriched categories]], which are more general.)

## Definition

\begin{definition}
For $\mathcal{C}$ an [[Ab-enriched category]] (e.g. an [[additive category]]) its *center* is

$$
  Z(\mathcal{C})
  \;\coloneqq\;
  [\mathcal{C}, \mathcal{C}]
  \big(id_{\mathcal{C}}, id_{\mathcal{C}}\big)
  \;\;
  \in
  \;
  CRing
  \,,
$$

where

* $[\mathcal{C}, \mathcal{C}]$ denotes the [[enriched functor category]] of [[enriched functor|enriched]] [[endofunctors]] on $\mathcal{C}$,

* $id_{\mathcal{C}}$ denotes the [[identity functor]] on $\mathcal{C}$.

By [[Ab]]-enrichment, this means that $Z(\mathcal{C})$ carries the [[structure]] of a [[commutative monoid|commutative]] [[monoid object]] [[internalization|internal]] to [[Ab]], [hence](monoid+object#Rings): the [[structure]] of a [[commutative ring]].
\end{definition}

## Examples

\begin{proposition}\label{CenterOfRModIsR}
Let [[Mod|$R Mod$]] denote the [[category]] of left [[modules]] of a [[ring]] $R$, and let $Z(R)$ be the [[center]] of $R$.   Then $Z(R Mod) \cong Z(R)$.
\end{proposition}
\begin{proof}
First note that for any $r \in Z(R)$, [[multiplication]] by $r$ acts as an [[endomorphism]] of each $R$-module, and this endomorphism is [[natural transformation|natural]]. This gives a [[ring homomorphism]] from $Z(R)$ to $Z(R Mod)$ which is [[injective]] because distinct elements of $r$ act differently as multiplication on the $R$-module given by $R$ itself. To see that it is also [[surjective]] and [hence](balanced+category#SetIsBalanced) [[bijective]], suppose $\alpha$ is a [[natural transformation]] of the [[identity functor]] on $R \Mod$.  Then $\alpha_R \colon R \to R$ must be right [[multiplication]] by some $r \in R$, since every endomorphism of $R \in R Mod$ is given by right multiplication by some $r \in R$.  Because $\alpha_R$ is natural and right multiplication by any $s \in R$ gives an endomorphism of $R \in R Mod$, we have
$$  (x s) r
\, = \,
\alpha_R(x s)
\, = \,
\alpha_R(x)s
\, = \,
(x r) s
$$
for all $x, s \in R$, so $r \in Z(R)$.  More generally, for any module $M$ and any $m \in M$ there is a module [[homomorphism]] $f \colon R \to M$ with $f(1) = m$, which by [[natural transformation|naturality]] implies
$$
  \alpha_M (m)
   \,=\,
  \alpha_M\big(f(1)\big)
   \,=\,
  f\big(\alpha_R(1)\big)
    \,=\,
  f(r)
    \,=\,
  r m
  \,,
$$
which shows that $\alpha_M$ is multiplication by $r$. \end{proof}

\begin{remark}
Two rings whose [[categories of modules]] are equivalent as Ab-enriched categories are said to be [[Morita equivalence|Morita equivalent]].  As a consequence of Prop. \ref{CenterOfRModIsR}, Morita equivalent *commutative* rings are already [[isomorphism|isomorphic]].
\end{remark}

As a further illustration of these ideas we show how the [[topological space|topology]] on a [[compact Hausdorff space]] is determined by the category of [[vector bundles]] over this space.  For any [[compact Hausdorff space]] $X$ let [[Vect(X)|$Vect(X)$]] denote the category of ([[finite-dimensional vector space|finite-]][[rank of a vector bundle|rank]] [[complex vector bundle|complex]]) [[vector bundles]] over $X$.  This category is [[linear category|$\mathbb{C}$-linear]], i.e. [[enriched category|enriched]] over the category of [[complex vector spaces]].  Thus, the center of $Vect(X)$ is a [[commutative algebra]] over $\mathbb{C}$. Moreover:

\begin{proposition}\label{CenterOfVectXisCX}
If $X$ is a [[compact Hausdorff space]] then the center of [[Vect(X)|$Vect(X)$]] is $C(X)$, the [[function algebra]] of [[complex numbers|complex]]-valued [[continuous functions]] on $X$.
\end{proposition}
\begin{proof}
For any [[field]] $k$ suppose $A$ is a commutative $k$-algebra.  Let $A Proj$ be the category of [[finitely generated module|finitely generated]] [[projective modules|projective $A$-modules]]. This is a $k$-linear category, and a straightforward extension of the proof of Prop. \ref{CenterOfRModIsR} shows that the center of $A Proj$ is isomorphic to $A$, not merely as a commutative ring, but as a commutative $k$-algebra.

Let $X$ be a compact Hausdorff space.  By [[Serre-Swan theorem|Swan's theorem]], [[Vect(X)|$Vect(X)$]] is [[equivalence of categories|equivalent]], as a $\mathbb{C}$-linear category, to $C(X) Proj$.  Thus the center of $Vect(X)$ is isomorphic to $C(X)$.
\end{proof}

\begin{corollary}\label{CompactHausdorffSpacefromVect}
Suppose $X$ and $Y$ are [[compact Hausdorff spaces]] such that [[Vect(X)|$Vect(X)$]] and [[Vect(X)|$Vect(Y)$]] are equivalent as $\mathbb{C}$-linear categories. Then $X$ and $Y$ are [[homeomorphism|homeomorphic]].
\end{corollary}

\begin{proof}
By Prop. \ref{CenterOfVectXisCX}, if $Vect(X)$ and $Vect(Y)$ are equivalent as $\mathbb{C}$-linear categories then $C(X)$ and $C(Y)$ are isomorphic as complex algebras.  The [[Gelfand-Naimark theorem]] implies that when $X$ is compact Hausdorff, it is homeomorphic to the set of algebra [[homomorphisms]] $C(X) \to \mathbb{C}$, given the [[topology of pointwise convergence]].   Thus the isomorphism of algebras $C(X) \cong C(Y)$ implies that $X$ and $Y$ are homeomorphic.  (Note that we did not need to show $C(X) \cong C(Y)$ as $C^\ast$-algebras here, but this follows.)
\end{proof}

\begin{remark}
Note that it is much easier to recover $C(X)$ and thus $X$ starting from $\Vect(X)$ as a [[symmetric monoidal category|symmetric monoidal]] $\mathbb{C}$-linear category, since then the endomorphism algebra of the unit object, the trivial line bundle over $X$, is $C(X)$.
\end{remark}

\begin{remark}
An analogue of Prop. \ref{CompactHausdorffSpacefromVect} also holds for real vector bundles: the center of the $\mathbb{R}$-linear category of real vector bundles over $X$ is the algebra of continuous real-valued functions on $X$, and from this we can recover $X$, either by using the real version of the Gelfand-Naimark theorem, or by complexifying this algebra and using the usual complex version of the Gelfand-Naimark theorem.
\end{remark}

## Properties

* In general, the construction of centers is not [[functor|functorial]] (except with respect to [[equivalence of categories]]); but it is functorial in some important special circumstances, such as certain reconstruction theorems.

> (namely?)

## Related concepts

* [[center]], [[center of a category]]

* [[Drinfeld center]]

## References

Early occurrence of the definition of the center of an additive category:

* [[Pierre Gabriel]], section 5.d of: *[[Des catégories abéliennes]]*, Bulletin de la Société Mathématique de France __90__ (1962) 323-448 [[numdam](http://www.numdam.org/item?id=BSMF_1962__90__323_0)]

[[!redirects center of an abelian category]]


center of an infinity-group

[[!redirects center of an ∞-group]]

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### $(\infty,1)$-Category theory
+--{: .hide}
[[!include quasi-category theory contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

The generalization of the notion of [[center]] from [[group]]s to [[∞-groups]].

## Definition

For $G \in \infty Grp(\mathcal{X})$ an [[∞-group]], there is a canonical morphism

$$
  AUT(G) \to Out(G)
$$

from its [[automorphism ∞-group]] $AUT(G) := \underline{Aut}_{\mathcal{X}}(\mathbf{B}G)$ to its [[outer automorphism ∞-group]].

The [[homotopy fiber]] of this morphism

$$
  \mathbf{B} Z(G) \to Aut(G) \to Out(G)
$$

is the [[delooping]] of an [[∞-group]] $Z(G)$. This is the **center** of $G$.

## Examples

### Centers of ordinary groups

For $\mathcal{X} = $ [[∞Grpd]] and $G$ [[truncated|0-truncated]], it is an ordinary [[discrete group]]. Its [[automorphism 2-group]] is the [[strict 2-group]] coming from the [[crossed module]] $[G \stackrel{Ad}{\to} Aut(G)]$. The morphism
$AUT(G) \to Out(G)$ is a [[fibration]] hence its [[homotopy fiber]] is, up to equivalence, the ordinary fiber, which is the crossed module $(G \stackrel{Ad}{\to} Inn(G))$, where $Inn(G) \subset Aut(G)$ is the group of [[inner automorphism]]s. This is equivalent to $(Z(G) \to 1)$, where $Z(G)$ is the ordinary [[center]] of $G$, and this is the crossed module corresponding to $\mathbf{B}Z(G)$.

## Related concepts

* [[higher central extension]]

* [[group]], [[2-group]], [[∞-group]],

* [[automorphism group]], [[automorphism 2-group]], [[automorphism ∞-group]],

* [[center]], **center of an $\infty$-group**,

* [[inner automorphism group]]

* [[outer automorphism group]], [[outer automorphism ∞-group]]


center of contraction

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

\tableofcontents

## Definition

In a [[dependent type theory]] with [[identity types]], a term $a:A$ is a **center of contraction** or a **centre of contraction** if in the context of a variable $b:A$ there is an [[identification]] $p(b):a =_A b$. If the type theory also has [[dependent product types]], the above is equivalent to having a dependent function
$$p:\prod_{b:A} a =_A b$$
called a **contraction** of $A$ at $a$. Thus, contractons of $A$ at $a$ are witnesses that $a:A$ is a center of contraction.

We then define the type of contractions of $A$ at $a$ as
$$\mathrm{Contr}_A(a) \coloneqq \prod_{b:A} a =_A b$$

### Rules for contraction types

If the dependent type theory does not have [[dependent product types]], contraction types could still be defined by adding the formation, introduction, elimination, computation, and uniqueness types for contraction types

Formation rules for contraction types:
$$\frac{\Gamma \vdash A \; \mathrm{type} \quad \Gamma, a:A, x:A \vdash a =_A x \; \mathrm{type}}{\Gamma, a:A \vdash \mathrm{Contr}_A(a) \; \mathrm{type}}$$

Introduction rules for contraction types:
$$\frac{\Gamma \vdash A \; \mathrm{type} \quad \Gamma, a:A, x:A \vdash a =_A x}{\Gamma, a:A \vdash \lambda(x).p(x):\mathrm{Contr}_A(a)}$$

Elimination rules for contraction types:
$$\frac{\Gamma, a:A \vdash p:\mathrm{Contr}_A(a) \quad \Gamma \vdash b:A}{\Gamma \vdash p(b):a =_A b}$$

Computation rules for contraction types:
$$\frac{\Gamma, a:A, x:A \vdash p(x):a =_A x \quad \Gamma \vdash b:A}{\Gamma \vdash \beta_\mathrm{Contr}:(\lambda(x).p(x))(b) =_{a =_A b} p(b)}$$

Uniqueness rules for contraction types:
$$\frac{\Gamma, a:A \vdash p:\mathrm{Contr}_A(a)}{\Gamma \vdash \eta_\mathrm{Contr}:p =_{\mathrm{Contr}_A(a)} \lambda(x).p(x)}$$

## Properties

A type $A$ is a [[contractible type]] if there exists a center of contraction
$$isContr(A) = \sum_{a:A} \mathrm{Contr}_A(a)$$
and a type $A$ is an [[h-proposition]] if every element in $A$ is a center of contraction
$$isProp(A) = \prod_{a:A} \mathrm{Contr}_A(a)$$

The [[axiom K]] on a type states that for every element $a:A$, [[reflexivity]] $\mathrm{refl}_A(a)$ is the [[center of contraction]] of the [[loop space type]] of $a$.

## See also

* [[contractible type]]
* [[h-proposition]]

## References

* {#Rijke22} [[Egbert Rijke]], *[[Introduction to Homotopy Type Theory]]*, Cambridge Studies in Advanced Mathematics, Cambridge University Press ([arXiv:2212.11082](https://arxiv.org/abs/2212.11082))

[[!redirects center of contraction]]
[[!redirects centers of contraction]]

[[!redirects centre of contraction]]
[[!redirects centres of contraction]]

[[!redirects type of contractions]]
[[!redirects types of contractions]]

[[!redirects contraction type]]
[[!redirects contraction types]]

[[!redirects Contr]]


central bimodule

If $R$ is a commutative ring then a central bimodule is an $R$-$R$-bimodule whose right action is obtained from the left by precomposing it with the flip of tensor factors.

If $R$ is an associative ring (or more generally an associative $k$-algebra over a ground commutative ring $k$) then a central bimodule is a bimodule whose restriction to a structure of a bimodule over the center $Z(R)$ is central, i.e. the left and right $Z(R)$-bimodule structures coincide. Cf. [pdf](https://www.mat.univie.ac.at/~michor/ncdg-con.pdf)

category: algebra


central character

If $U = U(\mathfrak{g})$ is the enveloping algebra of a Lie algebra $\mathfrak{g}$ over $\mathfrak{g}$, a central character of $U(\mathfrak{g})$, or, by abuse of language, of $\mathfrak{g}$, is any algebra homomorphism $Z(\mathfrak{g})\to\mathbb{C}$.

If $\mathfrak{g}$ is a semisimple Lie algebra over $\mathfrak{g}$, then any weight $\lambda$ determines a central character $\chi_\lambda$ in a standard way (...)


central charge

#Contents#
* table of contents
{:toc}

## Idea

In [[physics]], [[Noether's theorem]] relates [[symmetries]] to [[conserved currents]] and [[charges]].   Give a [[symmetry]] [[Lie algebra]] or [[Lie group]], and given a [[central extension]] of this, then the generators of the central extension are accordinly called _central charges_.

## Examples

* [[Virasoro Lie algebra]]

* [[extended supersymmetry]]

## Related concepts

* [[classical anomaly]], [[quantum anomaly]]

[[!redirects central charges]]


central extension

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

#Contents#
* table of contents
{:toc}

## Idea

Given an [[object]] in [[algebra]] $A$ (such as an [[associative algebra]], a [[group]] or a [[Lie algebra]], etc.) then an [[algebraic extension|extension]] $\widehat A \overset{p}{\longrightarrow} A$ (e.g. a [[group extension]] or [[Lie algebra extension]] etc.) is called a _central extension_ if its [[kernel]]

\[
  \label{ExtensionShortExactSequence}
  1 \to ker(p) \overset{\phantom{A}\iota\phantom{A}}{\hookrightarrow} \widehat A \overset{\phantom{A}p\phantom{A}}{\longrightarrow} A
  \to 1
\]

is in the [[center]] $C(\widehat{A})$ of $\widehat A$

$$
  ker(p) \subset C(\widehat{A})
  \,.
$$

This means in particular that $ker(p)$ is "commutative" (e.g. a [[commutative algebra]] or [[abelian group]] or [[Lie algebra]] with vanishing [[Lie bracket]] etc.), but it means in addition that the elements of $ker(p)$ commute not just among themselves, but also with all other elements of $\widehat A$.

Typically central extensions by some commutative algebraic object $ker(p)$ are classified by the suitable degree-2 [[cohomology group]] $H^2(A,ker(p))$ of $A$ with [[coefficients]] in $ker(p)$. In fact, typically there is an embedding of the situation into [[homotopical algebra]]/[[higher algebra]] such that this [[cohomology group]] is given by the [[homotopy classes]] of morphisms to a second [[delooping]] object $B ker(p)$ (in the context of [[groups]]: the [[delooping]] [[2-group]])

$$
  H^2(A,ker(p))
  \;\simeq\;
  \left\{
    A \overset{\phi}{\longrightarrow} B ker(p)
  \right\}_{/homotopy}
$$

and under this identification the central extension is the [[homotopy fiber]] of the [[cocycle]] $\phi$ and the [[short exact sequence]] (eq:ExtensionShortExactSequence) is part of the [[long homotopy fiber sequence]] to the left induced by $\phi$:

$$
  \array{
    ker(p) &\overset{\iota}{\longrightarrow}& \widehat{A}
    \\
    && \Big\downarrow
    \\
    && A &\overset{ \phantom{AA}\phi\phantom{AA} }{\longrightarrow}& B ker(p)
  }
$$

## Examples

* A [[Poisson bracket]] Lie algebra is a central [[extension of Lie algebras]] of a Lie algebra of [[Hamiltonian vector fields]],

* the corresponding [[quantomorphism group]] is a central [[extension of groups]] of the [[diffeological group]] of [[Hamiltonian symplectomorphism]].

* A [[Heisenberg group]] is a sub-central extension such a [[quantomorphism group]]-extension, over [[Hamiltonian symplectomorphisms]] on a [[Lie group]] that [[action|act]] by left multiplication.

* A [[spin group]] is a central extension of a [[special orthogonal group]] by the [[group of order 2]] $\mathbb{Z}/2$.

* ...

## Related concepts

* [[universal central extension]], [[maximal central extension]]

* [[higher central extension]]

* [[universal higher central extension]]

* [[nilpotent group]]

## References

See also

* Wikipedia, _[Central extension](https://en.wikipedia.org/wiki/Group_extension#Central_extension)_

Discussion of application in [[physics]]:

* G. M. Tuynman, W. A. Wiegenbrinck, _Central extensions and physics_, J. Geom. Physics 4:2(1987), 207–258.(doi:10.1016/0393-0440(87)90027-1)

[[!redirects central extensions]]


central limit theorem

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Measure and probability theory
+-- {: .hide}
[[!include measure theory - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

In [[probability theory]] the _central limit theorem_ is a [[theorem]] which asserts that the [[sum]] of independent [[random variables]] [[limit of a sequence|tends]] to a [[normal distribution]].

## Related concepts

* [[statistical significance]]

## References

See also

* Wikipedia, _[Central limit theorem](https://en.wikipedia.org/wiki/Central_limit_theorem)_

[[!redirects central limit theorems]]


central product of groups

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

#Contents#
* table of contents
{:toc}

## Definition

+-- {: .num_defn #CentralProduct}
###### Definition
**([[central product]])**

Given two [[groups]] $G_1$ and $G_2$ and a joint [[subgroup]]

\[
  \label{SubgroupInclusion}
  C \xhookrightarrow{\iota_i} Z(G_i)
\]

in each of their [[centers]], then the corresponding ("external") _central product_ is the [[quotient group]]

$$
  G_1 \circ G_2
  \;\coloneqq\;
  \big(
    G_1 \times G_2
  \big)/_{diag} C
$$

of the [[direct product group]] $G_1 \times G_2$ by the [[diagonal]] subgroup $C \xhookrightarrow{(\iota_1, \iota_2)} G_1 \times G_2$.

=--

([Gorenstein 80, p. 29](#Gorenstein80))

+-- {: .num_remark #MaterialDefinition}
###### Remark
**([[structural set theory|structural]] over [[material set theory|material]] definition)**

Beware that most texts insists on stating the choices in Def. \ref{CentralProduct} as that of

1. two separate subgroups $C_i \xhookrightarrow{\iota_i} Z(G_i)$

1. an [[isomorphism]] $C_1 \xrightarrow[\simeq]{\phi} C_2$ between them

and insists that the second groups as via $(-)^{-1}\circ \phi$

These clauses matter if one thinks of the subgroup inclusions as in [[material set theory]]. But we speak [[structural set theory]], which means that a [[subgroup]] inclusion as in (eq:SubgroupInclusion) is really a choice of _[[monomorphism|monic]] [[homomorphism]]_, and this choice already absorbs the choice of $\phi$ and or of $(-)^{-1}\circ \phi$.

=--

+-- {: .num_remark}
###### Remark
**(notation)**

Beware that there is no widely accepted convention for the notation of central products, and that most notational conventions suppress the choices of central subgroups involved.  The "$\circ$"-notation is popular in [[finite group]]-theory, while in [[Riemannian geometry]] people tend to use "$\cdot$" (see [[Sp(n).Sp(1)]]) or just plain juxtaposition, with no symbol for the central product at all.

=--

## Examples

### In Riemannian geometry and spin geometry

A [[Spin^c-group]] is a central product of a [[spin group]] with the [[circle group]].

Moreover, in [[Riemannian geometry]] and [[spin geometry]] one considers the central products [[Sp(n).Sp(1)]] and [[Spin(n).Spin(m)]].

## Related concepts

* [[direct product of groups]]

* [[semidirect product group]]

* [[free product of groups]]

* [[central extension of groups]]

## References

* {#Gorenstein80} D. Gorenstein, p. 29 of _Finite Groups_, New York (1980)

See also

* Wikipedia, _[Central product](https://en.wikipedia.org/wiki/Central_product)_

* GroupProps, _[External central product](https://groupprops.subwiki.org/wiki/External_central_product)_

[[!redirects central products of groups]]

[[!redirects external central product of groups]]
[[!redirects external central products of groups]]

[[!redirects internal central product of groups]]
[[!redirects internal central products of groups]]

[[!redirects central product group]]
[[!redirects central product groups]]

[[!redirects external central product group]]
[[!redirects external central product groups]]

[[!redirects internal central product group]]
[[!redirects internal central product groups]]

[[!redirects central product]]
[[!redirects central products]]

[[!redirects external central product]]
[[!redirects external central products]]

[[!redirects internal central product]]
[[!redirects internal central products]]


central simple algebra

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

## Properties

* [[Artin-Wedderburn theorem]]

## References

* Wikipedia, _[Central simple algebra](https://en.wikipedia.org/wiki/Central_simple_algebra)_

[[!redirects central simple algebras]]


centralizer

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

#Contents#
* table of contents
{:toc}

## Definition

\begin{definition}\label{CentralizerSubgroup}
Given a [[group]] $G$ and a [[subset]] $S \,\subset\, G$ of its [[underlying]] [[set]],
the *centralizer subgroup* (also: the *[[commutant]]*) of $S$ in $G$ is the [[subgroup]]

$$
  C_G(S)
  \;\coloneqq\;
  \big\{
    g \in G
    \,\vert\,
    \underset{s \in S}{\forall}
    (
      g \cdot s \,=\, s \cdot g
    )
  \big\}
  \;\subset\;
  G
$$

of all [[elements]] $c \in G$ which commute with the elements of $S$.
\end{definition}

Notice the similarity with but the difference to the concept of _[[normalizer subgroup]]_, see Prop. \ref{RelationToNormalizer}.

## Properties

\begin{proposition}\label{RelationToNormalizer}
Given a [[subset]] $S \subset G$ of a [[group]] $G$,
the *centralizer subgroup* of $S$ (Def. \ref{CentralizerSubgroup})
is a [[subgroup]] of the [[normalizer subgroup]]:

$$
  C_G(S)
  \;
  \subset
  \;
  N_G(S)
  \,.
$$
\end{proposition}
\begin{proof}
  Since an element $g \in G$ which fixes each element $s \in S$ separately
  already fixes the entire subset as such:
  $$
    \underset{s \in S}{\forall}
    \big(
      g \cdot s
      \,=\,
      s \cdot g
    \big)
    \;\;\;\;\;
    \Rightarrow
    \;\;\;\;\;
    \big(
      g \cdot S
      \,=\,
      S \cdot g
    \big)
    \,.
  $$
\end{proof}

\begin{prop}\label{CentralizersInT1GroupsAreClosed}
**(centralizers in [[T1-space|$T_1$]]-[[topological group|groups]] are [[closed subgroup|closed]])**
\linebreak
  If $G$ is a [[T1-space|$T_1$]]-[[topological group]], then all its centralizer subgroups are [[closed subgroups]].
\end{prop}
\begin{proof}
  First consider a [[singleton set]]  $S = \{s\}$.
  By definition, the centralizer of a single element $s \in G$ is the [[preimage]] of itself under the [[function]]
  $$
    \array{
      G &\xrightarrow{\;\;}& G
      \\
      g &\mapsto& g \cdot s \cdot g^{-1}
      \,.
    }
  $$
  (the [[adjoint action]] of $G$ on itself).

Noticing here that:

1. this is [[continuous function]], by the axioms on a topological group;

1. $\{s\} \subset G$ is a [[closed subset]], by the assumption that $G$ is a [[T1-space|$T_1$-space]] (by [this Prop.](separation+axioms#T1InTermsOfClosureOfPoints))

it follows that $C_G(\{s\}) \subset G$ is the continuous [[preimage]] of a [[closed subset]] and hence is itself closed (by [this Prop.](Introduction+to+Topology+--+1#ClosedSubsetContinuity)).

Now for a general set $S$, its centralizer is clearly the [[intersection]] of the centralizers of (the [[singleton sets]] on) its elements:

$$
  C_G(S)
    \;=\;
  \underset{
    s \in S
  }{\cap}
  C_G\big(\{s\}\big)
 \,.
$$

Since each of the factors on the right isclosed, by the previous argument, the general centralizer subgroup is an [[intersection]] of [[closed subsets]] and hence itself a closed subset.
\end{proof}

## Related concepts

* [[stabilizer subgroup]]

* [[normalizer subgroup]]

## References

See also

* Wikipedia, _[Centralizer and normalizer](https://en.wikipedia.org/wiki/Centralizer_and_normalizer)_

[[!redirects centralizers]]

[[!redirects centralizer group]]
[[!redirects centralizer groups]]

[[!redirects centralizer subgroup]]
[[!redirects centralizer subgroups]]


centrally extended groupoid

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Bundles
+-- {: .hide}
[[!include bundles - contents]]
=--
#### Cohomology
+--{: .hide}
[[!include cohomology - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

For $G$ a [[smooth group]], and $A$ an [[abelian group|abelian]] smooth group, a [[central extension]] $\hat G$ of $G$ by $A$ is equivalently a [[homotopy fiber sequence]] of [[smooth groupoid]] [[moduli stacks]] of the form

$$
  \mathbf{B}A \to \mathbf{B}\hat G \to \mathbf{B}G \stackrel{c}{\to} \mathbf{B}^2 A
  \,.
$$

Here $c$ is the smooth [[group cohomology]] [[cocycle]] that classifies the extension.

If here we allow the connected [[smooth groupoid]] $\mathbf{B}G$ by any [[smooth groupoid]] $\mathcal{G}_\bullet$, then a homotopy fiber sequence of the form

$$
  \mathbf{B}A \to \widehat {\mathcal{G}} \to \mathcal{G} \stackrel{c}{\to} \mathbf{B}^2 A
$$

exhibits $\widehat \mathcal{G}$ as a central $A$-extension of $\mathcal{G}$.

Equivalently, such a central extension $\widehat {\mathcal{G}} \to \mathcal{G}$ is a $(\mathbf{B}A)$-[[principal 2-bundle]].

In traditional literature this is mostly considered for [[Lie groupoids]]. Specifically, for $A$ a [[Lie group]] and for $C(\mathcal{U})$ the [[Cech groupoid]] of a [[good open cover]] $\mathcal{U}$ of a [[smooth manifold]] $X$, morphisms of [[smooth stacks]] $X \to \mathbf{B}^2 A$ are equivalently given by actual morphism of Lie groupoids $C(\mathcal{U}) \to \mathbf{B}^2 A$, which are equivalently degree-2 $A$-[[cocycles]] in the [[Cech cohomology]] of $X$. The corresponding incarnation $\widehat \mathcal{G}$ of the $\mathbf{B}A$-principal 2-bundle classified by this is known as the $A$-[[bundle gerbe]] over $C(\mathcal{U})$.

## Properties

### Twisted convolution algebra and twisted K-theory

A central extension of a Lie groupoid induces a [[twisted groupoid convolution algebra]]. The corresponding [[operator K-theory]] is the [[twisted K-theory]] of the [[differentiable stack]] of the base groupoid. See at _[[KK-theory]]_ for more on this.

## Related concepts

* [[central extension]]

* [[infinity-group extension]]

[[!redirects centrally extended groupoids]]

[[!redirects central extension of groupoids]]
[[!redirects central extensions of groupoids]]

[[!redirects centrally extended Lie groupoid]]
[[!redirects centrally extended Lie groupoids]]


Cerf wall crossing

> This entry is about "wall crossing" in [[Morse theory]]. For the notion in [[differential equations]] and [[physics]] see at _[[wall crossing]]_.

#Contents#
* table of contents
{:toc}

## Idea

Cerf wall crossing refers to certain paths crossing a [[codimension]] one domain ("wall") in [[Morse theory]].

## References

Lecture notes include

* [[Daniel Freed]],  [pdf](http://www.ma.utexas.edu/users/dafr/M392C/Notes/lecture23.pdf)

category: geometry


certified programming

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

#Contents#
* table of contents
{:toc}

## Idea

### General

A _certification_ or _formal verification_ of a computer program is a formalized guarantee -- a [[proof]] -- that the program has given specified properties.  For instance, it could be guaranteed to compute a given output based on a given input, or to always terminate, or to not include a certain kind of security hole.

Certifications often take the form of a [[formal proof]] (whence "formal methods" [WLBF09](#WLBF09)) that a program, regarded as a [[term]] of some sort (under _[[programs as proofs]]_), has a specified [[type]].  Thus, [[programming languages]] based on highly expressive [[type theories]] (including [[dependent types]]) are a natural place to do certified programming "natively".  Examples are _[[Coq]]_ and _[[Agda]]_. In this case, the program is written at the same time as a proof of its certification.  One often then wants to "extract" the executable code or "ignore" the proof part of the terms when actually running the code, for performance reasons; Coq and Agda include mechanisms designed for this.

It is also possible to write a program in some less strongly typed language and provide an "external" certification for it, rather than one built into the program itself.  Computer proof assistants like [[Coq]] and [[Agda]] are also used for this, using a formal representation of some other programming language.  There are also other program analysis tools which can produce automated proofs of certain aspects of a computer program, such as safety and termination (although of course a *complete* solution to termination-checking is impossible, being the [[halting problem]]).

### Via homotopy type theory

From [Ghani et al. 15](#GhaniEtAl15):

> The cost of software failure is truly staggering. Well known individual cases include the Mars Climate Orbiter failure (£80 million), Ariane Rocket disaster (£350 million), Pentium Chip Division failure (£300 million), and more recently the heartbleed bug (est. £400 million). There are many, many more examples. Even worse,  failures such as one in the Patriot Missile System and another  in the Therac-25 radiation system have cost lives. More generally, a  2008 study by the US government estimated that faulty software costs the US economy £100 billion annually.

> There are many successful approaches to software verification (testing, model checking etc). One approach is to find mathematical [[proofs]] that guarantees of software correctness. However, the complexity of modern software means that hand-written mathematical proofs can be untrustworthy and this has led to a growing desire for computer-checked proofs of software correctness.  Programming languages and interactive proof systems like [[Coq]], [[Agda]], [[NuPRL]] and Idris have been developed based on a formal system called [[Martin-Löf type theory]]. In these systems, we can not only write programs, but we can also express properties of programs using [[types]], and write programs to express proofs that our programs are correct.

> In this way, both large mathematical [[theorems]] such as the [[four color theorem|Four Colour Theorem]], and large software systems such as the CompCert C compiler have been formally verified. However, in such large projects, the issue of scalability arises: how can we use these systems to build large libraries of verified software in an effective way?

> This is related to the problem of reusability and modularity: a component in a software system should be replaceable by another which behaves the same way even though it may be constructed in a completely different way. That is, we need an "[[identity type|extensional equality]]" which is computationally well behaved (that is, we want to run programs using this equality). Finding such an equality is a fundamental and difficult problem which has remained unresolved for over 40 years.

> {#WeMightHaveASolution} But now it looks like we might have a solution! Fields medalist [[Vladimir Voevodsky]] has come up with a completely different take on the problem by thinking of equalities as paths such as those which occur in one of the most abstract branches of mathematics, namely [[homotopy theory]], leading to [[homotopy type theory|Homotopy Type Theory]] (HoTT). In HoTT, two objects are completely interchangeable if they behave the same way. However, most presentations of HoTT involve [[axioms]] which lack computational justification and, as a result, we do not have programming languages or verification systems based upon HoTT. The goal of our project is to fix that, thereby develop the first of a new breed of HoTT-based programming languages and verification systems, and develop case studies which demonstrate the power of HoTT to programmers and those interested in formal verification.

## Examples

* The [[completion monad]] has been used to produce code for [[real number]] computations with certified approximation bounds. See at _[[completion monad]]_ for more.

(...)

## Related concept

* [[Hoare logic]]

## References

### General

Introduction:

* {#WLBF09} Jim Woodcock, Peter Gorm Larsen, Juan Bicarregui, John Fitzgerald, *Formal methods: Practice and experience*, ACM Computing Surveys **41**  19  (2009) 1–36 [[doi:10.1145/1592434.1592436](https://doi.org/10.1145/1592434.1592436)]

* Patrick Cousot, Radhia Cousot, *A gentle introduction to formal verification of computer systems by abstract interpretation*, NATO Science for Peace and Security Series - D: Information and Communication Security, **25** Logics and Languages for Reliability and Security (2009)[[doi:10.3233/978-1-60750-100-8-1](https://dx.doi.org/10.3233/978-1-60750-100-8-1), [pdf](https://www.di.ens.fr/~cousot/publications.www/CousotCousot-Marktoberdorf-2009.pdf), [[CousotCousot-FormalVerification.pdf:file]]]

* [[John Harrison]], *Formal Verification*, Lecture notes Marktoberdorf 2010 [[web](https://www.cl.cam.ac.uk/~jrh13/papers/mark10.html), [pdf](https://www.cl.cam.ac.uk/~jrh13/papers/mark10.pdf), [[Harrison-FormalVerification.pdf:file]]]

* Catherine Meadows, *Program Verification and Security* ([doi:10.1007/978-1-4419-5906-5_863](https://doi.org/10.1007/978-1-4419-5906-5_863)), In:  Henk C. A. van Tilborg, Sushil Jajodia (ed.) *[Encyclopedia of Cryptography and Security](https://link.springer.com/referencework/10.1007/978-1-4419-5906-5)* Springer (2011)

* {#SpittersKrebbersvdWeegen} [[Bas Spitters]], Robberts Krebbers, Eelis van der Weegen, _From computational analysis to thoughts about analysis in HoTT_, MAP International spring school on formalization of Mathematics (2012) ([pdf](http://www.cs.ru.nl/~spitters/MapSpringSchool.pdf))

See also:

* Wikipedia, *[Formal verification](https://en.wikipedia.org/wiki/Formal_verification)*

Sources listing real-world issues programming issues that might motivate verification of software include

* Thomas Huckle, Tobias Neckel, *Bits and Bugs: A Scientific and Historical Review on Software Failures in Computational Science*, SIAM 2019 ([doi:10.1137/1.9781611975567](https://doi.org/10.1137/1.9781611975567))

* _[Some disasters caused by numerical errors](https://web.archive.org/web/20200117070005/http://ta.twi.tudelft.nl/nw/users/vuik/wi211/disasters.html)_

* Computerworld, *[Top software failures in recent history](https://www.computerworld.com/article/3412197/top-software-failures-in-recent-history.html#slide1)*, Feb 17, 2020

* Wikipedia, _[List of software bugs](https://en.wikipedia.org/wiki/List_of_software_bugs)_

### For cryptography

Software verification for [[cryptography]]:

* [[Mihhail Aizatulin]], Franccois Dupressoir, Andrew D. Gordon, Jan Jürjens, *Verifying Cryptographic Code in C: Some Experience and the Csec Challenge* ([pdf](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/MSR-TR-2011-118.pdf))

* [[Mihhail Aizatulin]], Andy Gordon, Jan Jürjens, *Extracting and Verifying Cryptographic Models from C Protocol Code by Symbolic Execution*, CCS '11 Proceedings of the 18th ACM Conference on Computer and Communications Security 2011 ([pdf](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/extracting.pdf))

* Matthias Berg, *Formal Verification of Cryptographic Security Proofs*, 2013 ([pdf](https://publikationen.sulb.uni-saarland.de/bitstream/20.500.11880/26584/1/thesis_berg.pdf), [doi:10.22028/D291-26528](http://dx.doi.org/10.22028/D291-26528))

* [[Adam Petcher]], *A Foundational Proof Framework for Cryptography*, 2014 ([pdf](https://dash.harvard.edu/bitstream/handle/1/17463136/PETCHER-DISSERTATION-2015.pdf), [harvard:17463136](https://dash.harvard.edu/handle/1/17463136))

* [[Adam Petcher]], Greg Morrisett, *The Foundational Cryptography Framework*,  In: R. Focardi, A. Myers (eds.) *Principles of Security and Trust* POST 2015. Lecture Notes in Computer Science **9036**, Springer (2015) [[doi:10.1007/978-3-662-46666-7_4](https://doi.org/10.1007/978-3-662-46666-7_4)]

* Andrew W. Appel, *Verification of a Cryptographic Primitive: SHA-256*, ACM Transactions on Programming Languages and SystemsApril 2015 Article No.: 7 ([doi:10.1145/2701415](https://doi.org/10.1145/2701415), [pdf](https://www.cs.princeton.edu/~appel/papers/verif-sha.pdf))

* Andres Erbsen, Jade Philipoom, Jason Gross, Robert Sloan, [[Adam Chlipala]], *Simple High-Level Code for Cryptographic Arithmetic - With Proofs, Without Compromises*, [2019 IEEE Symposium on Security and Privacy (SP)](https://ieeexplore.ieee.org/xpl/conhome/8826229/proceeding) ([doi:10.1109/SP.2019.00005](https://doi.org/10.1109/SP.2019.00005))

* [[Mihhail Aizatulin]], *Verifying Cryptographic Security Implementations in C Using Automated Model Extraction* ([arXiv:2001.00806](https://arxiv.org/abs/2001.00806))

Verification of [[cryptography]] via [[type theory]]:

* Cédric Fournet, Karthikeyan Bhargavan, Andrew D. Gordon, *Cryptographic Verification by Typing for a Sample Protocol Implementation*, In: Aldini A., Gorrieri R. (eds) Foundations of Security Analysis and Design VI. FOSAD 2011. Lecture Notes in Computer Science, vol 6858. Springer (2011) ([doi:10.1007/978-3-642-23082-0_3]( https://doi.org/10.1007/978-3-642-23082-0_3))

* Cédric Fournet, Markulf Kohlweiss, Pierre-Yves Strub, *Modular code-based cryptographic verification*, CCS '11: Proceedings of the 18th ACM conference on Computer and communications securityOctober 2011 Pages 341–350 ([doi:10.1145/2046707.2046746](https://doi.org/10.1145/2046707.2046746))

### Via Hoare calculus

Program verification via [[Hoare calculus]]:

* {#Hoare69} [[C. A. R. Hoare]], *An axiomatic basis for computer programming*, Communications of the ACM **12** 10 (1969) 576–580 [[doi:10.1145/363235.363259](https://doi.org/10.1145/363235.363259)]

For [[quantum programming languages]]:

* [Wu (2019)](#Wu2019)

### Via (dependent) type theory
 {#ViaDependentTypeTheoryReferences}

The general idea of verified programming via [[dependent type theory|dependent]] [[type theory]]:

* [[Per Martin-Löf]], *Constructive Mathematics and Computer Programming*, Studies in Logic and the Foundations of Mathematics Volume 104, 1982, Pages 153-175 (doi:10.1016/S0049-237X(09)70189-2)

* {#Streicher93} [[Thomas Streicher]], p. 1-2 of: *Investigations into Intensional Type Theory*, Habilitation Thesis, Darmstadt (1993) [[pdf](https://www2.mathematik.tu-darmstadt.de/~streicher/HabilStreicher.pdf), [[Streicher-IntensionalTT.pdf:file]]]

Exposition:

* [[Harley Eades]], *Type Theory and Applications*, 2012 ([pdf](https://metatheorem.org/includes/pubs/comp.pdf), [[EadesTypeTheoryAndApplications.pdf:file]])

Software verification via [[dependent type theory]] (such as in [[Coq]] or [[Agda]]):

* [[Adam Chlipala]], *Implementing Certified Programming Language Tools in Dependent Type Theory*, Berkeley (2007) [[UCB/EECS-2007-113](https://www2.eecs.berkeley.edu/Pubs/TechRpts/2007/EECS-2007-113.html), [pdf](https://www2.eecs.berkeley.edu/Pubs/TechRpts/2007/EECS-2007-113.pdf),  [web](http://adam.chlipala.net/papers/ChlipalaPhD/)]

* [[Adam Chlipala]], _Certified programming with dependent types_, MIT Press 2013 [[ISBN:9780262026659 ](https://mitpress.mit.edu/books/certified-programming-dependent-types), [pdf](http://adam.chlipala.net/cpdt/cpdt.pdf),  [book webpage](http://adam.chlipala.net/cpdt/)]

* Aleksandar Nanevski, Anindya Banerjee, Deepak Garg, *Dependent Type Theory for Verification of Information Flow and Access Control Policies*,  ACM Transactions on Programming Languages and Systems July 2013 Article No.: 6 ([doi:10.1145/2491522.2491523](https://doi.org/10.1145/2491522.2491523))

On [[Agda]] as a dependently typed certification language:

* [[Aaron Stump]], *Verified Functional Programming in Agda*, Association for Computing Machinery and Morgan & Claypool (2016) [[doi:10.1145/2841316](https://doi.org/10.1145/2841316), ISBN:978-1-970001-27-3]

#### Application to consensus algorithms

Verification of ([[blockchain]]-like) hashgraph consensus algorithms:

Background:

* Pierre Tholoniat, Vincent Gramoli, *Formal Verification of Blockchain Byzantine Fault Tolerance*, in *Handbook on Blockchain*, Optimization and Its Applications **194**, Springer (2022) [[arXiv:1909.07453](https://arxiv.org/abs/1909.07453), [doi:10.1007/978-3-031-07535-3_12](https://doi.org/10.1007/978-3-031-07535-3_12)]

* Leemon Baird, Mance Harmon, and Paul Madsen, *Hedera: A Public Hashgraph Network & Governing Council*, (last update 2020) [[pdf](https://hedera.com/hh_whitepaper_v2.1-20200815.pdf)]

With [[Coq]]:

* [Hedera](https://hedera.com) blog: *[Coq Proof Completed By Carnegie Mellon Professor Confirms Hashgraph Consensus Algorithm Is Asynchronous Byzantine Fault Tolerant](https://hedera.com/blog/coq-proof-completed-by-carnegie-mellon-professor-confirms-hashgraph-consensus-algorithm-is-asynchronous-byzantine-fault-tolerant)* (Oct 2018)

* [Hedera](https://hedera.com) blog: *[Formal Methods: The Importance of Being Fault Tolerant in a World with Bad Actors](https://medium.com/hedera/formal-methods-the-importance-of-being-abft-in-a-world-with-bad-actors-7308a4997fdd)* (2018)

* {#Baird18} Leemon Baird: *Formal Methods: A Deep Dive Using the Coq Proof Assistant -- Hedera18* (2018) [video: [YT](https://youtu.be/6q15ytIOE3U?list=RDCMUCIhE4NYpaX9E9SssFnwrjww)]

* Matthew Salazar, *Consensus, Blockchain and Proof Assistants* (2018) [[pdf](http://matthew-salazar-1.s3.amazonaws.com/static/analyze/pdf/Consensus_Blockchain_and_Proof_Assistants.pdf), [[Salazar-ConsensusProof.pdf:file]]]

* Karl Crary, *Formalizing the Hashgraph gossip protocol*, talk at *CyLab Partners Conference* (2019) [[pdf](https://www.cylab.cmu.edu/_files/documents/formal-methods-3-kcrary-formalizing-the-hashgraph-gossip-protocol.pdf)]

* Karl Crary, *Verifying the Hashgraph Consensus Algorithm* [[arXiv:2102.01167](https://arxiv.org/abs/2102.01167), [pdf](https://www.cs.cmu.edu/~crary/papers/2021/hashgraph.pdf)]

* Musab A. Alturki, Jing Chen, Victor Luchangco, Brandon Moore, Karl Palmskog, Lucas Peña, Grigore Roşu, *Towards a Verified Model of the Algorand Consensus Protocol in Coq*, Formal Methods. FM 2019 International Workshops. Lecture Notes in Computer Science **12232** (2019) 362-367 [[arXiv:1907.05523](https://arxiv.org/abs/1907.05523), [doi:10.1007/978-3-030-54994-7_27](https://doi.org/10.1007/978-3-030-54994-7_27)]

With [[Agda]]:

* Harold Carr, Christopher Jenkins, Mark Moir, Victor Cacciari Miraldo, Lisandra Silva, *Towards Formal Verification of HotStuff-based Byzantine Fault Tolerant Consensus in Agda: Extended Version*, in: *NASA Formal Methods: 14th International Symposium, NFM 2022* Proceedings  (2022) 616–635 [[doi:10.1007/978-3-031-06773-0_33](https://doi.org/10.1007/978-3-031-06773-0_33), [arXiv:2203.14711](https://arxiv.org/abs/2203.14711)]

See also:

* {#SpittersConcordium} [[Bas Spitters]], *[Formal verificaton](https://cs.au.dk/research/centers/concordium/research-areas/formal-verification)* at *[Concordium Blockchain Research Center](https://cs.au.dk/research/centers/concordium/)*

* {#ThomsenSpitters20} Søren Eller Thomsen, [[Bas Spitters]], *Formalizing Nakamoto-Style Proof of Stake* [[eprint:2020/917](https://eprint.iacr.org/2020/917)]

* *[1st Workshop on Formal Methods for Blockchains](https://sites.google.com/view/fmbc/)*(October 2019)

* [Quantstamp](https://quantstamp.com/) blog: *[Formally Verifying Hedera Hashgraph's Stablecoin Framework](https://quantstamp.com/blog/quantstamp-stablecoin-case-study-formally-verifying-hedera-hashgraphs-stablecoin-framework)* (2020)

* Sudhani Verma; Divakar Yadav; Girish Chandra, *Introduction of Formal Methods in Blockchain Consensus Mechanism and Its Associated Protocols*, IEEE Access **10** (2022) [[doi:10.1109/ACCESS.2022.3184799](https://doi.org/10.1109/ACCESS.2022.3184799), [pdf](https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9801830)]

* [Quantstamp](https://quantstamp.com/) blog: *[Applying lightweight formal methods and SAT solvers to build better blockchain applications](https://quantstamp.com/blog/towards-satisfactory-web3-software-engineering)* (July 2023)

#### Via homotopy type theory

Proposals for verification specifically via [[homotopy type theory]]:

* {#GhaniEtAl15} [[Neil Ghani]], [[Conor McBride]], EPSRC research grant _[Homotopy Type Theory: Programming and Verification](https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/M016951/1)_, 2015

* [[Klaus Mainzer]], *From Proof Theory to Proof Assistants -- Challenges of Responsible Software and AI*, talk at *[Arbeitstagung Bern-München, ABM Spring 2019](https://cj-xu.github.io/abm19/)* ([pdf](https://cj-xu.github.io/abm19/mainzer.pdf), [[MainzerResponsibleSoftware2019.pdf:file]])

* [[Klaus Mainzer]], *Proof and Computation. Perspectives for Mathematics, Computer Science, and Philosophy*, Chapter 1 in: Klaus Mainzer, Peter Schuster, Helmut Schwichtenberg (eds.), *Proof and Computation II -- From Proof Theory and Univalent Mathematics to Program Extraction and Verification*, World Scientific 2021 ([doi:10.1142/12263](https://doi.org/10.1142/12263))

and here again specifically for [[cryptography]]:

* [[Paventhan Vivekanandan]], *A Homotopical Approach to Cryptography*, talk at [FCS 2018](https://www.andrew.cmu.edu/user/liminjia/events/fcs2018/papers/s33.pdf) ([pdf](https://www.andrew.cmu.edu/user/liminjia/events/fcs2018/papers/s33.pdf), [easychair:GLtQ#](https://easychair.org/smart-slide/slide/GLtQ#)), In: Charles Morisset and Limin Jia (eds.) FCS Informal Proceedings  **[55](http://t-news.cn/Floc2018/FLoC2018-pages/volume55.html)** (2018)

* [[Paventhan Vivekanandan]], *HoTT-Crypt: A Study in Homotopy Type Theory based on Cryptography*, Kalpa Publications in Computing Volume 9, 2018, Pages 75-90 ([doi:10.29007/tvpp](https://doi.org/10.29007/tvpp), [web slides](https://easychair.org/smart-slide/slide/WSST#), [[VivekanandanHoTTCryptography.pdf:file]])

Explicitly using [[type equivalences]]:

* [[Talia Ringer]], *Proof repair along type equivalences*, §4 in: *Proof Repair*, Univ. Washington (2021) [[proquest:2568297410](https://www.proquest.com/docview/2568297410), [video](https://www.youtube.com/watch?v=_BkTrp44uBU)]

### For quantum programming languages
 {#ReferencesForQuantumProgrammingLanguages}

First, on the problem of debugging quantum programs, as maybe first highlighted by [VRSAS 2015](#VRSAS15), [Rand (2018)](#Rand18) and [Ying & Feng (2018)](#YingFeng18):

* {#VRSAS15} [[Benoît Valiron]], [[Neil J. Ross]], [[Peter Selinger]], [[D. Scott Alexander]], [[Jonathan M. Smith]], *Programming the quantum future*, Communications of the ACM **58** 8 (2015) 52–61 [[doi:10.1145/2699415](https://doi.org/10.1145/2699415), [pdf](https://www.iro.umontreal.ca/~brassard/cours/6155/Langages%20de%20programmation%20quantique/Programming%20the%20Quantum%20Future.pdf),  [web](https://cacm.acm.org/magazines/2015/8/189851-programming-the-quantum-future/abstract), promo vid:[YT](https://youtu.be/mzce69oFdH0?list=PLn0nrSd4xjjbIHhktZoVlZuj2MbrBBC_f)]

  > [p 6:] "In quantum computation, the cost of debugging is likely to be quite high. To begin with, observing a quantum system can change its state. A debugger for a quantum program would therefore necessarily give incomplete information about its state when run on actual quantum hardware. The alternative is to use a quantum simulator for debugging. But this is not practical due to the exponential cost of simulating quantum systems. Moreover, it can be expected that the initial quantum computers will be rare and expensive to run and therefore that the cost of runtime errors in quantum code will initially be much higher than in classical computing. This shifts the cost-benefit analysis for quantum programming toward strong compile-time correctness guarantees, as well as formal specification and verification."

  > (with an eye towards [[Quipper]])

* Andriy Miranskyy, Lei Zhang, Javad Doliskani, *Is Your Quantum Program Bug-Free?*, in *ICSE-NIER '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: New Ideas and Emerging Results* (2020) 29–32 [[arXiv:2001.10870](https://arxiv.org/abs/2001.10870), [doi:10.1145/3377816.3381731](https://doi.org/10.1145/3377816.3381731)]

  > "The classical parts of a quantum program can be debugged using traditional methods. The quantum parts, however, can not be treated in the same way because of the properties of a QC -- such as superposition, entanglement, and no-cloning -- which are governed by the laws of quantum mechanics. The purpose of debugging a program is to present the user with human readable, i.e., classical, information about the runtime state of the system. Extracting classical information from a quantum state is done using measurement which is usually a non-unitary operation and results in collapse of the state, and hence an unintended behavior of the program."

On formal verification of [[quantum computing]] with/of [[quantum programming languages]]:

general:

* {#YingFeng18} [[Mingsheng Ying]], [[Yuan Feng]], *Model Checking Quantum Systems --- A Survey* [[arXiv:1807.09466](https://arxiv.org/abs/1807.09466)]

  > "But to check whether a quantum system satisfies a certain property at a time point, one has to perform a quantum-measurement on the system, which can change the state of the system. This makes studies of the long-term behaviours of quantum systems much harder than that of classical system."

  > "The state spaces of the classical systems that model-checking algorithms can be applied to are usually finite or countably infinite. However, the state spaces of quantum systems are inherently continuous even when they are finite-dimensional. In order to develop algorithms for model-checking quantum systems, we have to exploit some deep mathematical properties of the systems so that it suffices to examine only a finite number of (or at most countably infinitely many) representative elements, e.g. those in an orthonormal basis, of their state spaces."

> (repeated in [Ying & Feng (2021, Sec. 1.3)](#YingFeng21))

* Ji Guan, [[Yuan Feng]], Andrea Turrini, [[Mingsheng Ying]], *Model Checking Applied to Quantum Physics* [[arXiv:1902.03218](https://arxiv.org/abs/1902.03218)]

* {#YingFeng21} [[Mingsheng Ying]], [[Yuan Feng]], *Model Checking Quantum Systems -- Principles and Algorithms*, Cambridge University Press (2021) [[ISBN:9781108484305](https://www.cambridge.org/ae/academic/subjects/computer-science/programming-languages-and-applied-logic/model-checking-quantum-systems-principles-and-algorithms?format=HB)]

* Marco Lewis, Sadegh Soudjani, Paolo Zuliani, *Formal Verification of Quantum Programs: Theory, Tools and Challenges* [[arXiv:2110.01320](https://arxiv.org/abs/2110.01320)]

  > "Verifying programs is especially important in the quantum setting due to how difficult it is to program complex algorithms correctly on resource-constrained and error-prone quantum hardware."

* Carmelo R. Cartiere, *Formal Methods for Quantum Software Engineering*, in: *Quantum Software Engineering*, Springer (2022) [[doi:10.1007/978-3-031-05324-5_5](https://doi.org/10.1007/978-3-031-05324-5_5)]

  > "The characteristic difficulty in creating pure quantum software is mainly due to the inaccessibility to intermediate states, which makes debugging practically impossible. However, the use of formal methods, which apply rigorous mathematical models to ensure error-free software, can overcome this barrier and enable the production of reliable quantum algorithms and applications right out of the box."

with [[QML]]:

* [[Alexander Green]], *Towards a formally verified functional quantum programming language* (2010) [[eprints:11457](http://eprints.nottingham.ac.uk/11457)]

with [[QPMC]]:

* [[Yuan Feng]], Ernst Moritz Hahn, Andrea Turrini, Lijun Zhang, *`QPMC`: A Model Checker for Quantum Programs and Protocols*, in *Formal Methods. FM 2015*, Lecture Notes in Computer Science **9109**, Springer (2015)  [[doi:10.1007/978-3-319-19249-9_17](https://doi.org/10.1007/978-3-319-19249-9_17)]

  > "In practice, however, security analysis of [[quantum cryptography|quantum cryptographic]] protocols is notoriously difficult; for example, the manual proof of BB84 in [15] contains about 50 pages. It is hard to imagine such an analysis being carried out for more sophisticated quantum protocols. Thus, techniques for automated or semi-automated verification of these protocols will be indispensable."

for [[Quipper]] with [[QPMC]]:

* Linda Anticoli, Carla Piazza, Leonardo Taglialegne, Paolo Zuliani, _Towards Quantum Programs Verification: From Quipper Circuits to QPMC_, In: Devitt S., Lanese I. (eds.) *Reversible Computation. RC 2016*, Lecture Notes in Computer Science **9720** Springer (2016) [[arXiv:1708.06312](https://arxiv.org/abs/1708.06312), [doi:10.1007/978-3-319-40578-0_16](https://doi.org/10.1007/978-3-319-40578-0_16)]

with [[QWIRE]] (in [[Coq]]):

* [[Robert Rand]], [[Jennifer Paykin]], [[Steve Zdancewic]], *QWIRE Practice: Formal Verification of Quantum Circuits in Coq*, EPTCS 266, 2018, pp. 119-132 ([arXiv:1803.00699](https://arxiv.org/abs/1803.00699))

* {#Rand18} [[Robert Rand]], *Formally Verified Quantum Programming*, UPenn (2018) [[ediss:3175](https://repository.upenn.edu/edissertations/3175)]

  > [p. iv:] "We argue that [[quantum programs]] demand [[proof assistant|machine-checkable proofs]] of correctness. We justify this on the basis of the complexity of programs manipulating [[quantum states]], the expense of running [[quantum programs]], and the inapplicability of traditional debugging techniques to programs whose states cannot be examined."

  > [p. 3:] "Quantum programs are tremendously difficult to understand and implement, almost guaranteeing that they will have bugs. And traditional approaches to debugging will not help us: We cannot set breakpoints and look at our qubits without [[quantum state collapse|collapsing the quantum state]]. Even techniques like unit tests and random testing will be impossible to run on classical machines and too expensive to run on quantum computers – and failed tests are unlikely to be informative"

  > [p. 4:] "Thesis Statement: *[[quantum programming|Quantum programming]] is not only amenable to [[software verification|formal verification]]: it demands it.*"

  > "The overarching goal of this thesis is to write and verify quantum programs together. Towards that end, we introduce a quantum programming language called [[Qwire]] and embed it inside the [[Coq]] [[proof assistant]]. We give it a [[linear type system]] to ensure that it obeys the laws of [[quantum mechanics]] and a [[denotational semantics]] to prove that programs behave as desired."

Further development [[SQIR]]:

* [[Kesha Hietala]], [[Robert Rand]], [[Shih-Han Hung]], Xiaodi Wu, [[Michael Hicks]], *A verified optimizer for Quantum circuits*, Proceedings of the ACM on Programming Languages **5** Issue POPL 37 (2021) 1–29 [[doi:10.1145/3434318](https://doi.org/10.1145/3434318)]

* [[Kesha Hietala]], [[Robert Rand]], [[Shih-Han Hung]], Liyi Li, [[Michael Hicks]], *Proving Quantum Programs Correct*, in *12th International Conference on Interactive Theorem Proving (ITP 2021)*, Leibniz International Proceedings in Informatics (LIPIcs) **193** (2021) [[arXiv:2010.01240](https://arxiv.org/abs/2010.01240)]

* [[Kesha Hietala]], *A verified software toolchain for quantum programming* (2022) [[pdf](https://khieta.github.io/files/drafts/khieta-dissertation.pdf), [blog](https://blog.sigplan.org/2021/06/02/verifying-a-quantum-compiler/)]

See also:

* Jaap Boender, Florian Kammüller, Rajagopal Nagarajan, *Formalization of Quantum Protocols using Coq*, EPTCS **195** (2015) 71-83 [[doi:10.4204/EPTCS.195.6](https://doi.org/10.4204/EPTCS.195.6), [doi:10.4204/EPTCS.195.6](https://doi.org/10.4204/EPTCS.195.6)]

  > (via [[Coq]])

* Wenjun Shi, Qinxiang Cao, Yuxin Deng, Hanru Jiang, [[Yuan Feng]], *Symbolic Reasoning about Quantum Circuits in Coq*, Journal of Computer Science and Technology (JCST), **36** 6 (2021) 1291-1306 $[$[arXiv:2005.11023](https://arxiv.org/abs/2005.11023), [doi:10.1007/s11390-021-1637-9](https://doi.org/10.1007/s11390-021-1637-9)$]$

* [[Mingsheng Ying]], *Model Checking for Verification of Quantum Circuits*, in: *Formal Methods. FM 2021*, Lecture Notes in Computer Science **13047**, Springer (2021) $[$[arXiv:2104.11359](https://arxiv.org/abs/2104.11359), [doi:10.1007/978-3-030-90870-6_2](https://doi.org/10.1007/978-3-030-90870-6_2)$]$

* [[Mingsheng Ying]], Zhengfeng Ji, *Symbolic Verification of Quantum Circuits*,  $[$[arXiv:2010.03032](https://arxiv.org/abs/2010.03032)$]$

* [[Li Zhou]], [[Gilles Barthe]], [[Pierre-Yves Strub]], Junyi Liu, [[Mingsheng Ying]], *CoqQ: Foundational Verification of Quantum Programs*, Proceedings of the ACM on Programming Languages **7** POPL 09 (2023) 29 833–865 [[arXiv:2207.11350](https://arxiv.org/abs/2207.11350), [doi:10.1145/3554343]( https://doi.org/10.1145/3554343)]

  > (in [[Coq]])

Via [[Hoare logic]]:

* {#Wu2019} Xiaodi Wu, *Toward Automatic Verification of Quantum Programs* (2019) [[pdf](https://www.cs.umd.edu/class/fall2019/cmsc657/note/qhoare.pdf)]

Projects:

* *[VeriqTAS -- Verification of Quantum Technologies, Applications and Systems](https://veriqtas.cft.edu.pl/index.html)*

See also

* [[Anne Broadbent]], Arthur Mehta, Yuming Zhao, *Quantum delegation with an off-the-shelf device* [[arXiv:2304.03448](https://arxiv.org/abs/2304.03448)]

### Hardware verification
 {#HardwareVerification}

* J. Pau Roth, *Hardware Verification*,  IEEE Transactions on Computers C **26** 12 (1977) [[doi:10.1109/TC.1977.1674795](https://doi.org/10.1109/TC.1977.1674795)]

* Paolo Camurati, Paolo Prinetto, *Formal Verification of Hardware Correctness: Introductions and Survey of Current Research*, ComputerVolume **21** 7 (1988)  [[doi:10.1109/2.65](https://doi.org/10.1109/2.65), [Computer-doi:10.1109/2.65](https://doi.ieeecomputersociety.org/10.1109/2.65),  [pdf](https://www.cerc.utexas.edu/~jay/fv_surveys/camurati_fvsurvey_computer1988.pdf)]

* Aarti Gupta, *Formal Hardware Verification Methods: A survey*, Formal Methods in System Design **1** (1992) 151-238 [[doi:10.1007/BF00121125](https://doi.org/10.1007/BF00121125), [pdf](https://link.springer.com/content/pdf/10.1007/978-1-4615-3556-0_2.pdf)]

* Sharad Malik, *Hardware Verification: Techniques, Methodology and Solutions*, in *Tools and Algorithms for the Construction and Analysis of Systems. TACAS 2008*, Lecture Notes in Computer Science **4963** [[doi:10.1007/978-3-540-78800-3_1](https://doi.org/10.1007/978-3-540-78800-3_1)]

See also:

* Wikipedia, *[Hardware verification language](https://en.wikipedia.org/wiki/Hardware_verification_language)*

* Oxford University CS Department: *[Hardware verification](https://www.cs.ox.ac.uk/activities/hardwareverification/)*

On [[hardware verification]] using [[proof assistants]]:

* Mark Aagaard, Miriam Leeser, *A methodology for efficient hardware verification*, Formal Methods in System Design **5** (1994) 95-117 [[doi:10.1007/BF01384235](https://doi.org/10.1007/BF01384235)]

{#QuantumHardwareVerification} On [[hardware verification]] of [[quantum computing]]-[[quantum systems|systems]]:

* [[Martin Kliesch]], [[Ingo Roth]], *Theory of Quantum System Certification*, PRX Quantum **2** (2021) 010201 [[doi:10.1103/PRXQuantum.2.010201](https://doi.org/10.1103/PRXQuantum.2.010201), [arXiv:2010.05925](https://arxiv.org/abs/2010.05925)]

[[!redirects verified software]]
[[!redirects software verification]]
[[!redirects formal software verification]]

[[!redirects program verification]]
[[!redirects formal program verification]]

[[!redirects verified programming]]

[[!redirects certification language]]
[[!redirects certification languages]]

[[!redirects hardware verification]]
[[!redirects hardware verifications]]

[[!redirects formal method]]
[[!redirects formal methods]]


Cesare Burali-Forti

* [Wikipedia entry](http://en.wikipedia.org/wiki/Cesare_Burali-Forti)

## Related entries

* [[Burali-Forti's paradox]]

category: people


Cesare Gallozzi

wrote a thesis on [weak Tarskian type universes](http://ncatlab.org/nlab/show/type+of+types#TarskiStyle) in [[homotopy type theory]]:

* {#Gallozzi14} [[Cesare Gallozzi]], _Constructive Set Theory from a Weak Tarski Universe_, MSc thesis (2014)  ([arXiv:1411.5591](http://xxx.tau.ac.il/abs/1411.5591))

category: people


CFT > history

< [[CFT]]
[[!redirects CFT -- history]]


chain

# Contents
* table of contents
{: toc}

## Idea

### In homology theory

In [[homology]]/[[homological algebra]], a _chain_ is an element of a _[[chain complex]]_.

Specifically for the complex computing the [[singular homology]] of a [[topological space]], a _[[singular chain]]_ is a [[formal linear combination]] of [[simplices]] in that space.

In [[de Rham cohomology]], a _[[de Rham chain]]_ is a [[formal linear combination]] of [[parametrized submanifolds]] [[manifold with boundary|with boundary]].

### In order theory

In [[order theory]], a chain is a [[totally ordered]] [[subset]] of a given [[poset]] (or [[proset]]). See also *[[antichain]]*

For applications of this concept see for instance

* [[Zorn's Lemma]]

* [[shuffle]]

* ...

## Related concepts

[[!include chains and cochains - table]]

[[!redirects chain]]
[[!redirects chains]]


chain algebra > history

< [[chain algebra]]
[[!redirects chain algebra -- history]]


chain complex

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

#Contents#
* table of contents
{:toc}

## Idea

A _chain complex_ is a [[complex]] in an [[additive category]] (often assumed to be an [[abelian category]]).

The archetypical example, from which the name derives, is the [[singular chain complex]] $C_\bullet(X)$ of a [[topological space]] $X$.

Chain complexes are the basic objects of study in [[homological algebra]].

### Basic

A _chain complex_ $V_\bullet$ is a sequence $\{V_n\}_{n \in \mathbb{Z}}$ of [[abelian groups]] or [[modules]] (for instance [[vector spaces]]) or similar equipped with linear maps $\{d_n : V_{n+1} \to V_n\}$ such that $d^2 = 0$, i.e. the composite of two consecutive such maps is the [[zero morphism]] $d_n \circ d_{n+1} = 0$.

A basic example is the [[singular chain complex]] of a [[topological space]], or the [[de Rham complex]] of a [[smooth manifold]]. Another type of example occurs with the [[Dold-Kan correspondence]] as the [[Moore complex]] of a [[simplicial abelian group]] or similar. Both the first and the third of these types of example correspond, on the surface, to chain complexes in which the grading is by $\mathbb{N}$, not $\mathbb{Z}$.  Dually the [[de Rham complex]] example can be included by indexing by the non-positive integers,  but  by defining them to take trivial, that is zero, values in other dimensions they become chain complexes in the sense used here. The more general definition is important as it is (i) more inclusive and (ii) leads to objects that behave well with respect to shift / translation operators, (see below).

Chain complexes crucially come with their _[[chain homology]]_ [[groups]]. When regarding [[chain maps]] between them that induce [[isomorphisms]] on these groups ([[quasi-isomorphisms]]) as [[weak equivalences]], chain complexes form a useful presentation for aspects of [[stable homotopy theory]]. More on this aspect [below](#MeaningInHomotopyTheory).

### Meaning in homotopy theory
 {#MeaningInHomotopyTheory}

By the [[Dold-Kan correspondence]] there is an equivalence between the category of *[[connective chain complex|connective]] chain complexes of abelian groups* and the category of *abelian [[simplicial group|simplicial groups]]*. The functor

$$NCC:AB^\Delta^{op}\to Ch_\bullet^+(AB)$$

giving this equivalence is called [[Moore complex|normalized chain complex functor]] or [[Moore complex|Moore complex functor]].

In particular this reasoning shows that connective chain complexes of abelian groups are a model for abelian [[infinity-group|∞-groups]] (aka [[Kan complex|Kan complexes]] with abelian group structure).  This correspondence figures as part of the [[cosmic cube]]-classification scheme of [[n-category|n-categories]].

## Definition
 {#Definition}

### In components
 {#InComponents}

Let $\mathcal{C}$ be an [[abelian category]].

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

A ($\mathbb{Z}$-graded) **chain complex** in $\mathcal{C}$ is

* a collection of [[objects]] $\{C_n\}_{n\in\mathbb{Z}}$,

* and of [[morphisms]] $\partial_n : C_n \to C_{n-1}$

$$
  \cdots \overset{\partial_3}{\to} C_2 \overset{\partial_2}{\to} C_1 \overset{\partial_1}{\to} C_0 \overset{\partial_0}{\to} C_{-1} \overset{\partial_{-1}}{\to} \cdots
$$

such that

$$
  \partial_n  \circ \partial_{n+1} = 0
$$

(the [[zero morphism]]) for all $n \in \mathbb{Z}$.

=--

A [[homomorphism]] of chain complexes is a [[chain map]] (see there). Chain complexes with chain maps between them form the [[category of chain complexes]] $Ch_\bullet(\mathcal{C})$.

One uses the following  terminology for the components of a chain complex, all deriving from the example of a [[singular chain complex]]:

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

For $C_\bullet$ a chain complex

* the morphisms $\partial_n$ are called the **[[differentials]]** or **[[boundary]] maps**;

* the [[element in an abelian category|elements]] of $C_n$
  are called the **$n$-[[chains]]**;

* the elements in the [[kernel]]

  $$
    Z_n \coloneqq ker(\partial_{n-1})
  $$

  of $\partial_{n-1} : C_n \to C_{n-1}$ are called the **$n$-[[cycles]]**;

* the elements in the [[image]]

  $$
    B_n \coloneqq im(\partial_n)
  $$

  of $\partial_{n} : C_{n+1} \to C_{n}$ are called the **$n$-[[boundaries]]**;

Notice that due to $\partial \partial = 0$ we have canonical inclusions

$$
  0 \hookrightarrow B_n \hookrightarrow Z_n \hookrightarrow C_n
  \,.
$$

* the [[cokernel]]

  $$
    H_n \coloneqq Z_n/B_n
  $$

  is called the degree-$n$ **[[chain homology]]** of $C_\bullet$.

$$
  0 \to B_n \to Z_n \to H_n \to 0
  \,.
$$

=--

The [[duality|dual]] notion:

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

A **[[cochain complex]]** in $\mathcal{C}$ is a chain complex in the [[opposite category]] $\mathcal{C}^{op}$. Hence a tower of objects and morphisms as above, but with each [[differential]] $d_n : V^n \to V^{n+1}$ increasing the degree.

=--

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

One also says **homologically graded** complex, for the case that the differentials lower degree, and _cohomologically graded_ complex for the case where they raise degree.

=--

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

Frequently one also considers $\mathbb{N}$-graded (or _nonnegatively graded_) chain complexes (for instance in the [[Dold-Kan correspondence]]), which can be identified with $\mathbb{Z}$-graded ones for which $V_n=0$ when $n\lt 0$.  Similarly, an $\mathbb{N}$-graded _cochain_ complex is a cochain complex for which $V_n=0$ when $n\lt 0$, or equivalently a chain complex for which $V_n=0$ when $n\gt 0$.

=--

### In terms of translations

Note that in particular, a chain complex is a [[graded object]] with extra structure.  This extra structure can be codified as a map of graded objects $\partial:V\to T V$, where $T$ is the 'shift' endofunctor of the category $Gr(C)$ of graded objects in $C$, such that $T(\partial) \circ \partial = 0$.  More generally, in any pre-additive category $G$ [[category with translation|with translation]] $T : G \to G$, we can define a **chain complex** to be a [[differential object]] $\partial_V : V \to T V$ such that $V \stackrel{\partial_V}{\to} T V \stackrel{T(\partial_V)}{\to} T T V$ is the [[zero morphism]].  When $G= Gr(C)$ this recovers the original definition.

## Examples
 {#Examples}

Common choices for the ambient [[abelian category]] $\mathcal{C}$ include [[Ab]], $k$[[Vect]] (for $k$ a [[field]]) and generally $R$[[Mod]] (for $R$ a [[ring]]), in which case we obtain the familiar definition of an (unbounded) chain complex of [[abelian groups]], [[vector spaces]] and, generally, of  [[modules]].

### In $k$-vector spaces

In $C =$ [[Vect]]$_k$ a chain complex is also called a [[differential graded vector space]], consistent with other terminology such as [[differential graded algebra]] over $k$.  This is also a special case in other ways: every chain complex over a field is [[formal dg-algebra|formal]]: [[quasi-isomorphism|quasi-isomorphic]] to its [[homology]] (the latter considered as a chain complex with zero differentials).  Nothing of the sort is true for chain complexes in more general categories.

The [[category of chain complexes]] of vector spaces carries the [[tensor product of chain complexes]] and a [[braiding]] which makes it a [[symmetric monoidal category]]. The corresponding [[commutative monoids]] are the [[differential graded-commutative algebras]].

### In super vector spaces

A chain complex in [[super vector spaces]] is a [[chain complex in super vector spaces]]. The category of these carries a [[symmetric monoidal category]]-[[structure]] and the corresponging [[commutative monoids]] are the [[differential graded-commutative superalgebras]].

### In chain complexes

A chain complex in a category of chain complexes is a [[double complex]].

### Singular and cellular chain complex

For $X$ a [[topological space]], there is its [[singular simplicial complex]].

More generally, for $S$ a [[simplicial set]], there is the chain complex
$S \cdot R$ of $R$ [[chains on a simplicial set]].

### Of a simplicial abelian group

For $A_\bullet$ a [[simplicial abelian group]], there is a chain complex $C_\bullet(A)$, the [[alternating face map complex]], and a chain complex $N_\bullet(A)$, the [[normalized chain complex]] of $A$.

The [[Dold-Kan correspondence]] says that this construction establishes an [[equivalence of categories]] between non-negatively-graded chain complexes and [[simplicial abelian groups]].

## Properties

### Model structure

There is a [[model category]] structure on the category $Ch(A)$ of chain complexes in an [[abelian category]].  Its [[homotopy category]] is the [[derived category]] of $A$.  See [[model structure on chain complexes]].

There is another [[Hurewicz model structure on chain complexes]] whose homotopy category is the [[homotopy category of chain complexes]].

## Related concepts

[[!include chains and cochains - table]]

* [[category of chain complexes]]

  * **chain complex**, [[connective chain complex]], [[bounded chain complex]]

  * [[chain map]], [[quasi-isomorphism]]

  * [[chain homotopy]]

  * [[model structure on chain complexes]]

  * [[elliptic chain complex]]

* [[cochain complex]]

* [[filtered chain complex]]

* [[perfect chain complex]]

* [[homological algebra]]

* [[rational stable homotopy theory]]

* [[equivariant chain complex]]

## References

* [[Charles Weibel]], section 1.1 _[[An Introduction to Homological Algebra]]_.

* [[Masaki Kashiwara]], [[Pierre Schapira]], Section 11 of: *[[Categories and Sheaves]]*, Grundlehren der Mathematischen Wissenschaften **332**, Springer (2006) [[doi:10.1007/3-540-27950-4](https://link.springer.com/book/10.1007/3-540-27950-4), [pdf](https://www.maths.ed.ac.uk/~v1ranick/papers/kashiwara2.pdf)]

* [[Urs Schreiber]], [chapter II](https://ncatlab.org/schreiber/show/Introduction+to+Homological+algebra#ChapterOnChainComplexes) of  _[[schreiber:HAI|Introduction to Homological Algebra]]_

[[!redirects chain complexes]]


chain complex in super vector spaces

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

#Contents#
* table of contents
{:toc}

## Idea

A _[[chain complex]]_ $V_\bullet$ of [[super vector spaces]] is for each $n \in \mathbb{Z}$ a [[super vector space]] $V_n = (V_n)_\even \oplus (V_n)_odd$, equipped with a [[differential]], hence for each $n \in \mathbb{Z}$ a [[morphism]] $\partial_n \;\colon\; V_{n+1} \to V_n$ of [[super vector spaces]] such that $\partial \circ \partial = 0$.

The [[category]] $Ch(SuperVect)$ of chain complexes of super vector space is much like the [[category of chain complexes]] $Ch(Vect)$ of ordinary [[vector spaces]], in particular in that it carries the [[tensor product of chain complexes]] that makes it a [[monoidal category]]. But there is a non-trivial [[symmetric monoidal category|symmetric]] [[braiding]] on $Ch(SuperVect)$ which involves not just the signs used in the braiding in $Ch(Vect)$, but also the signs involved in the defining nonp-trivial braiding on [[super vector space|SuperVect]]. The [[commutative monoid in a symmetric monoidal category|commutative monoids]] with respect to this symmetric braiding on $Ch(SuperVect)$ are the [[differential graded-commutative superalgebras]].

In fact there are two such such non-trivial symmetric braidings on $Ch(SuperVect)$ (Prop. \ref{SymmetricStructureOnCategoryOfChainComplexesOfSuperVectorSpaces} below), but they are equivalent to each other (Prop. \ref{EquivalenceTwoSymmetricMonoidalStructuresOnChSuperVect} below).

## Definition

+-- {: .num_defn #ChainComplexesOfSuperVectorSpaces}
###### Definition
**([[chain complexes]] of [[super vector spaces]])**

Write $Ch(SuperVect)$ for the [[category of chain complexes]] inside the category of [[super vector spaces]].

Hence for $V_\bullet \in Ch(SuperVect)$ an [[object]], for each $n \in \mathbb{Z}$ there is a [[super vector space]]

$$
  V_n = (V_n)_{even} \oplus (V_n)_{odd} \;\in SuperVect
$$

where we write the elements of the [[group of order two]] as $\mathbb{Z}/2 =\{even, odd\}$, with $even$ being the [[neutral element]].

Hence we may regard any $V_\bullet \in Ch(SuperVect)$ equivalently as a $\mathbb{Z} \times (\mathbb{Z}/2)$-[[graded object|graded]] [[vector space]] equipped with a [[differential]] of degree $(1,even)$. For $v \in V$ an element in definite ("homogeneous") bi-degree, we denote this degree by

\[
  \label{BidegreeOnChainComplexOfSuperVectorSpaces}
  deg(v) \coloneqq (n_v, \sigma_v) \;\in\; \mathbb{Z} \times (\mathbb{Z}/2)
  \,.
\]

The category $Ch(SuperVect)$ becomes a [[monoidal category]] under the [[tensor product of chain complexes]] applied to the tensor product of [[super vector spaces]]. This means that for $V, W \in Ch(SuperVect)$, the [[differential]] on a homogeneously graded element $v \otimes w \in V \otimes W$ is

$$
  \partial(v \otimes w)
  \;=\;
  (\partial v) \otimes w
  +
  (-1)^{ n_v } v \otimes \partial w
  \,.
$$

=--

## Properties

### Symmetric monoidal structure

+-- {: .num_prop #SymmetricStructureOnCategoryOfChainComplexesOfSuperVectorSpaces}
###### Proposition
**([[symmetric monoidal category|symmetric monoidal]] [[structure]] on category of chain complexes of super vector spaces)**

The [[monoidal category|monoidal]] category of chain complexes of super vector spaces $(Ch(SuperVect), \otimes)$ from Def. \ref{ChainComplexesOfSuperVectorSpaces} becomes a [[symmetric monoidal category|symmetric monoidal]] with each of the following two [[braiding]] [[isomorphisms]], defined on tensor products of elements in homogenous bi-degree (eq:BidegreeOnChainComplexOfSuperVectorSpaces) as follows:

1. $\tau_{Deligne} \;\colon\; v \otimes w \mapsto (-1)^{ (n_v n_w + \sigma_v \sigma_w) } w \otimes v$;

1. $\tau_{Bernst} \;\colon\; v \otimes w \mapsto (-1)^{ (n_v + \sigma_v) (n_w + \sigma_w) } w \otimes v$.

Here in the exponents we are using the canonical [[ring]]-[[structure]] on the [[integers]] $\mathbb{Z}$ and on the [[prime field]] $\mathbb{Z}/2 = \mathbb{F}_2$, the implicit [[ring homomorphism]] $\mathbb{Z} \to \mathbb{Z}/2$ and we understand that $(-1)^{even} = 1$ and $(-1)^{odd} = -1$.

=--

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

Since the expressions for both sign factors are symmetric in $v$ and $w$ in both cases, it is clear that $\tau_{w,v} \circ \tau_{v,w} = id_{v \otimes w}$ in both cases. Hence if $\tau$ is indeed a [[braiding]], then it is [[symmetric monoidal category|symmetric]].

To see that $\tau$ is indeed a [[braiding]] in each case, we need to check the [[hexagon identities]]

$$
  \array{
   (V_1 \otimes V_2) \otimes V_3
   &\overset{a_{V_1, V_2, V_3}}{\longrightarrow}&
   V_1 \otimes (V_2 \otimes V_3)
   &\overset{\tau_{V_1,V_2 \otimes V_3}}{\longrightarrow}&
   (V_2 \otimes V_3) \otimes V_1
   \\
   \Big\downarrow{}^{\tau_{V_1,V_2}\otimes Id}
   &&&&
   \Big\downarrow{}^{a_{V_2,V_3,V_1}}
   \\
   (V_2 \otimes V_1) \otimes V_3
   &\overset{a_{V_2,V_1,V_3}}{\longrightarrow}&
   V_2 \otimes (V_1 \otimes V_3)
   &\overset{Id \otimes \tau_{V_1,V_3}}{\longrightarrow}&
   V_2 \otimes (V_3 \otimes V_1)
  }
$$

and

$$
  \array{
   V_1 \otimes (V_2 \otimes V_3)
   &\overset{a^{-1}_{V_1,V_2,V_3}}{\longrightarrow}&
   (V_1 \otimes V_2) \otimes V_3
   &\overset{\tau_{V_1 \otimes V_2, V_3}}{\longrightarrow}&
   V_3 \otimes (V_1 \otimes V_2)
   \\
   \Big\downarrow{}^{id \otimes \tau_{V_2,V_3}}
   &&&&
   \Big\downarrow{}^{a^{-1}_{V_3,V_1,V_2}}
   \\
   V_1 \otimes (V_3 \otimes V_2)
   &\overset{a^{-1}_{V_1,V_3,V_2}}{\longrightarrow}&
   (V_1 \otimes V_3) \otimes V_2
   &\overset{\tau_{V_1,V_3} \otimes id}{\longrightarrow}&
   (V_3 \otimes V_1) \otimes V_2
  }
  \,.
$$

Since $\tau$ differs only by multiplication by a sign from the standard symmetric braiding on the [[category of vector spaces]], which does satisfy its hexagon identities, it just remains to check that these sign factors picked up in going both ways around these diagrams agree.

Hence for $\tau_{Deligne}$ the two hexagon identities are equivalent to the conditions

$$
  (-1)^{ n_1 (n_2 + n_3) + \sigma_1( \sigma_2 + \sigma_3 )  }
  \;=\;
  (-1)^{ n_1 n_2 + \sigma_1 \sigma_2 + n_1 n_3 + \sigma_1 \sigma_3 }
$$

and

$$
  (-1)^{ (n_1 + n_2) n_3 + (\sigma_1 + \sigma_2) \sigma_3 }
  \;=\;
  (-1)^{ n_1 n_3 + \sigma_1 \sigma_3 + n_2 n_3 + \sigma_2 \sigma_3 }
$$

while for $\tau_{Bernst}$ they are equivalent to the conditions

$$
  (-1)^{ (n_1 + \sigma_1)( n_2 + \sigma_2 + n_3 + \sigma_3  ) }
  \;=\;
  (-1)^{ (n_1 + \sigma_1)(n_2 + \sigma_2) + (n_1 + \sigma_1)(n_3 + \sigma_3)  }
$$

and

$$
  (-1)^{ (n_1 + \sigma_1 + n_2 + \sigma_2)(n_3 + \sigma_3) }
  \;=\;
  (-1)^{ (n_1 + \sigma_1)(n_3 + \sigma_3) + (n_2 + \sigma_2)(n_3 + \sigma_3) }
$$

for all triples of bi-degrees $(n_i, \sigma_i) \in \mathbb{Z} \times (\mathbb{Z}/2)$.

In both cases this holds because already the relevant [[exponents]] are equal in each case, by the [[distributive law]] for [[multiplication]] and [[addition]] in $\mathbb{Z}/2 = \mathbb{F}_2$.

=--

+-- {: .num_remark #Parity}
###### Remark
**([[parity]])**

For the [[symmetric monoidal category|symmetric]] [[braiding]] $\tau_{Bernst}$ in Prop. \ref{SymmetricStructureOnCategoryOfChainComplexesOfSuperVectorSpaces} it makes sense to name the additive [[group homomorphism]]

$$
  \array{
    \mathbb{Z} \times (\mathbb{Z}/2)
    &\overset{ parity }{\longrightarrow}&
    \mathbb{Z}/2
    \\
    (n , \sigma) &\mapsto& \sigma + n \, mod \, 2
  }
$$

This is called _[[parity]]_ in parts of the literature (following [AKSZ 95](#AKSZ+sigma-model#AKSZ)). With this notation the Bernstein braiding in Prop. \ref{SymmetricStructureOnCategoryOfChainComplexesOfSuperVectorSpaces} is simply

* $\tau_{Bernst} \;\colon\; v \otimes w \mapsto (-1)^{ parity(v) parity(w) } w \otimes v$.

Notice that for the other symmetric braiding $\tau_{Deligne}$, the concept of parity does not play any intrinsic role.

=--

+-- {: .num_prop #EquivalenceTwoSymmetricMonoidalStructuresOnChSuperVect}
###### Proposition
**(the two [[symmetric monoidal category|symmetric monoidal]] [[structures]] on the category of chain complexes of super vector spaces are equivalent)**

The two [[symmetric monoidal category]] [[structures]] $\tau_{Deligne}$ and $\tau_{Bernst}$ on the [[monoidal category|monoidal]] [[category of chain complexes of super vector spaces]] $(Ch(SuperVect), \otimes)$ from Prop. \ref{SymmetricStructureOnCategoryOfChainComplexesOfSuperVectorSpaces} are equivalent

$$
  \tau_{Deligne}
  \;\simeq\;
  \tau_{Bernst}
$$

in that the [[identity functor]] $Ch(SuperVect) \overset{id}{\longrightarrow} Ch(SuperVect)$ equipped with the following monoidal [[natural isomorphism]]

$$
  \array{
    id(V) \otimes id(W) \overset{\mu}{\longrightarrow} id(V \otimes W)
    \\
    v \otimes w
    \;\mapsto\;
    (-1)^{ n_v \sigma_w  } \, v \otimes w
  }
$$

(the second line shows its action on elements of homogeneous bidegree $(n,\sigma) \in \mathbb{Z} \times (\mathbb{Z}/2)$)

becomes a [[nLab:strong monoidal functor|strong]] [[symmetric monoidal functor]]

$$
  (Ch(SuperVect), \otimes, \tau_{Deligne})
  \underoverset{\simeq}{(id,\mu)}{\longrightarrow}
  (Ch(SuperVect), \otimes, \tau_{Bernst})
  \,.
$$

=--

([Deligne-Morgan 99, remark 1.2.8](#DeligneMorgan99))

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

First to see that we have a [[strong monoidal functor]], we need to check the [[associativity]] condition

$$
  \array{
    (id(V_1) \otimes id(V_2)) \otimes id(V_3)
      &\underoverset{\simeq}{a_{id(V_1),id(V_2),id(V_3)}}{\longrightarrow}&
    id(V_1) \otimes( id(V_2)\otimes id(V_3) )
    \\
    {}^{\mathllap{\mu_{V_1,V_2} \otimes id}}\downarrow
      &&
    \Big\downarrow{}^{\mathrlap{id\otimes \mu_{V_2,V_3}}}
    \\
    id(V_1 \otimes V_2) \otimes id(V_3)
     &&
    id(V_1) \otimes id(V_2 \otimes V_3)
    \\
    {}^{\mathllap{\mu_{V_1 \otimes V_2 , V_3} } }\Big\downarrow
      &&
    \Big\downarrow^{\mathrlap{\mu_{ V_1, V_2 \otimes V_3  }}}
    \\
    id( ( V_1 \otimes V_2 ) \otimes V_3  )
      &\underset{id(a_{V_1,V_2,V_3})}{\longrightarrow}&
    id( V_1 \otimes ( V_2 \otimes V_3 ) )
  }
  \,,
$$

and the [[unitality]] conditions

$$
  \array{
    1 \otimes id(V)
      &\overset{\epsilon \otimes id}{\longrightarrow}&
    id(1) \otimes id(V)
    \\
    {}^{\mathllap{\ell_{id(V)}}}\Big\downarrow
      &&
    \Big\downarrow{}^{\mathrlap{\mu_{1, V }}}
    \\
    id(V)
      &\overset{id(\ell_V )}{\longleftarrow}&
    id(1 \otimes V  )
  }
$$

and

$$
  \array{
    id(V) \otimes  1
      &\overset{id \otimes \epsilon }{\longrightarrow}&
    id(V) \otimes  id(1)
    \\
    {}^{\mathllap{r_{id(V)}}}\Big\downarrow
      &&
    \Big\downarrow{}^{\mathrlap{\mu_{V, 1 }}}
    \\
    id(V)
      &\overset{F(r_V )}{\longleftarrow}&
    id(V \otimes 1  )
  }
  \,,
$$

Since $\mu$ differs from the trivial monoidal isomorphism only by the sign factor, this is equivalent to the condition that the sign factors picked up in going both ways around these diagrams agree.

For [[associativity]] this is the condition

$$
  (-1)^{
    n_1 \sigma_2 + (n_1 + n_2)\sigma_3
  }
  \;=\;
  (-1)^{
    n_2 \sigma_3 + n_1 (\sigma_2 + \sigma_3)
  }
$$

for all bi-degrees $(n_i, \sigma_i) \in \mathbb{Z} \times (\mathbb{Z}/2)$,
which holds, because it already holds for the [[exponents]] themselves, as an identity in $\mathbb{Z}/2 =\mathbb{F}_2$.

For the [[unitality]] condition this is the statement that the sign given by $\mu_{1,x}$ and $\mu_{x,1}$ is the the trivial sign $(-1)^0 = 1$. This is indeed the case because the [[tensor unit]] is in degree $0 = (0,even) \in \mathbb{Z} \times (\mathbb{Z}/2)$.

Now to see that we have a [[symmetric monoidal functor]], we need to show that it intertwines the two [[symmetric monoidal category|symmetruc]] [[braiding]] [[isomorphisms]]

$$
  \array{
    id(V_1) \otimes id(V_2)
      &\stackrel{\tau_{Bernst}}{\longrightarrow}& id(V_2) \otimes id(V_1)
    \\
    {}^{\mathllap{\mu_{V_1,V_2}}}\Big\downarrow
    &&
    \Big\downarrow{}^{\mathrlap{\mu_{V_2,V_1}}}
    \\
    id(V_1\otimes V_2)
      &\overset{id(\tau_{Deligne})}{\longrightarrow}& if(W \otimes V)
  }
$$

As before, this is equivalent to a condition on the signs picked up both ways, which reads:

$$
  (-1)^{ (n_1 + \sigma_1)(n_2 + \sigma_2) + n_2 \sigma_1}
  \;=\;
  (-1)^{ n_1 \sigma_2 + n_1 n_2 + \sigma_1 \sigma_2 }
  \,.
$$

Inspection shows that this is indeed the case:

The two signs of $\tau_{Deligne}$ and $\tau_{Bernst}$ differ by the "mixed terms" that are produced in [[distributivity|multiplying out]] $(n_v + \sigma_v)(n_w + \sigma_w)$ and these two mixed terms is just what the two occurences $\mu$ provides (using that $+1 = -1 \in \mathbb{F}_2$).

=--

### Differential graded-commutative superalgebras

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

A [[differential graded-commutative superalgebra]] is a [[commutative monoid in a symmetric monoidal category|commutative monoid]] in the [[symmetric monoidal category]] of [[chain complexes of super vector spaces]], for either of the symmetric monoidal structures from Prop. \ref{SymmetricStructureOnCategoryOfChainComplexesOfSuperVectorSpaces}.

$$
  sdgcAlg_{Deligne}
  \;\coloneqq\;
  ComMon\left(  Ch(SuperVect), \otimes, \tau_{Deligne} \right)
$$

$$
  sdgcAlg_{Benrst}
  \;\coloneqq\;
  ComMon\left(  Ch(SuperVect), \otimes, \tau_{Bernst} \right)
$$

The resulting [[signs in supergeometry|sign rule]] is this:

[[!include sign rules in homological superalgebra -- table]]

Since the [[identity functor]] carries a [[strong monoidal functor|strong]] [[symmetric monoidal functor|symmetric monoidal]] [[equivalence of categories]] (Prop. \ref{EquivalenceTwoSymmetricMonoidalStructuresOnChSuperVect})

$$
    \left(  Ch(SuperVect), \otimes, \tau_{Deligne} \right)
    \;\simeq\;
    \left(  Ch(SuperVect), \otimes, \tau_{Bernst} \right)
$$

there is (via [this Prop.](symmetric+monoidal+functor#SymmetricMonoidalFunctorInducesFunctorOnCommutativeMonoids)) an induced [[equivalence of categories]] of the corresponding [[commutative monoids in a symmetric monoidal category|symmetric monoids]]

$$
    ComMon\left(  Ch(SuperVect), \otimes, \tau_{Deligne} \right)
    \;\simeq\;
    ComMon\left(  Ch(SuperVect), \otimes, \tau_{Bernst} \right)
$$

hence of these two versions of [[differential graded-commutative superalgebras]]:

$$
  sdgcAlg_{Deligne}
  \;\simeq\;
  sdgcAlg_{Bernst}
$$

=--

### Model category structure

See at _[[model structure on chain complexes of super vector spaces]]_.

## Related concepts

* [[super L-infinity algebra]]

* [[model structure on differential graded-commutative superalgebras]]

## References

* {#DeligneMorgan99} [[Pierre Deligne]], [[John Morgan]], _Notes on supersymmetry_, remark 1.2.8 in [[NotesOnNotesOnSupersymmetry.pdf:file]]

  in [[Pierre Deligne|P. Deligne]], [[Pavel Etingof|P. Etingof]], [[Dan Freed|D.S. Freed]], L. Jeffrey, [[David Kazhdan|D. Kazhdan]], [[John Morgan]], [[David Morrison]], [[Edward Witten|E. Witten]] (eds.)  _[[Quantum Fields and Strings]], A course for mathematicians_, 2 vols. Amer. Math. Soc. Providence 1999. ([web version](http://www.math.ias.edu/qft))

[[!redirects chain complexes in super vector spaces]]

[[!redirects chain complex of super vector spaces]]
[[!redirects chain complexes of super vector spaces]]

[[!redirects category of chain complexes of super vector spaces]]