nLab coherence space


Not to be confused with the notion of coherent space in topology.



The notion of coherence space (Girard 1989, §8, also sometimes “coherent space” but beware of the alternative meaning discussed there) is used for the semantics of linear logic in proof theory. They form a star-autonomous category.

A coherence space is analogous to a locale defined by a basis for its frame of opens. A coherence space has a set of “tokens” we think of as “primitive observations” along with a coherence relation that says when primitive observations are “coherent” in that they can both be satisfied by the same point of the space. A point of the space can then be defined as a clique of observations: a set of observations such that every pair in the set is coherent.


As a Set of Cliques

A coherence space XX is a collection of subsets of a set |X||X| which verify some conditions. We call:

  • |X||X| the web of XX
  • the elements of |X||X|, the points of XX
  • the elements of XX, the cliques of XX

The conditions to be verified are:

  • Every subset of a clique is a clique.
  • If aa is a point, then {a}\{a\} is a clique.
  • If AA is a family of cliques such that (x,yA)(xyA)(x,y \in A) \Rightarrow (x \cup y \in A), then A\bigcup A is a clique.

As an Undirected Graph

Equivalently, a coherence space XX consists of

  1. A set |X||X|, called the web of XX, whose elements are called “tokens”
  2. A reflexive, symmetric binary relation ~~ on |X||X| called the coherence relation

A clique is then a subset of |X||X| such that each pair of elements is coherent. A co-clique is a subset of |X||X| where any two distinct elements xyx \neq y are incoherent ¬(x~y)\neg (x ~ y).

As an Arity Space

Coherence spaces can be defined as arity spaces for the “subunary” class of arities {0,1}\{0,1\}.


A linear function of coherence spaces f:XYf : X \multimap Y is a relation f|X|×|Y|f \subseteq |X|\times|Y| that

  1. preserves cliques: if UU is a XX-clique then f *(U)={yY|xU.f(x,y)}f_*(U) = \{ y \in Y | \exists x \in U. f(x,y) \} is a YY-clique .
  2. reflects co-cliques: if VV is a YY-co-clique then f *(U)={xX|yV.f(x,y)}f^*(U) = \{ x \in X | \exists y \in V. f(x,y)\} is an XX-co-clique.


The notion in terms of a set of cliques and a coherence relation are equivalent by the following:


The map which send an undirected simple graph GG to the pair (C(G),V(G))(C(G), V(G)) where V(G)V(G) is the set of all the vertices of GG and C(G)C(G) is the set of all the cliques of GG is a bijection between undirected simple graphs and coherence spaces where the coherence space associated to GG is C(G)C(G) with |C(G)|=V(G)|C(G)|=V(G). The reciprocal map associates to a coherence space XX the undirected simple graph GG obtained by taking V(G)=|X|V(G)=|X| and the set E(G)E(G) of edges equal to the set of all cliques of cardinal 22.


The terminology “coherence space” seems to be due to:

Other references say instead “coherent space”:

Last revised on September 17, 2022 at 14:14:06. See the history of this page for a list of all contributions to it.