Coherent space

From Wikipedia, the free encyclopedia

Script error: No such module "For".

In proof theory, a coherent space (also coherence space) is a concept introduced in the semantic study of linear logic.

In Proofs and Types, coherent spaces are called coherence spaces. A footnote explains that although in the French original they were "espaces cohΓ©rents", the translation used "coherence space", because spectral spaces are sometimes called "coherent spaces".

Definitions

There are several equivalent definitions of a coherent space.

As a family of subsets

The original definition by Jean-Yves Girard is a family of sets π’œ, satisfying the following closure conditions:

  • Down-closure: if aβˆˆπ’œ and aβŠ†a, then aβˆˆπ’œ.
  • Binary completeness: for every MβŠ†π’œ, if a1βˆͺa2βˆˆπ’œ for all a1,a2∈M, then ⋃Mβˆˆπ’œ.

The elements of the sets in π’œ are tokens. The set of tokens is|π’œ|=β‹ƒπ’œ={α∣{Ξ±}βˆˆπ’œ}.We say that each a∈A is a coherent set of tokens. If a set X is given in advance, and the elements of π’œ are presented as subsets of X, then one also requires {Ξ±}βˆˆπ’œ for every α∈X. This intuitively states that any token is coherent at least to itself.

Given such a family, one obtains a reflexive, symmetric relation ∼ on |π’œ|, called coherence modulo π’œ, by settingα∼βif and only if{Ξ±,Ξ²}βˆˆπ’œ.The elements of π’œ are then precisely the subsets of |π’œ| whose elements are pairwise related by ∼.

As a family of maximally coherent subsets

The coherent sets are partially ordered under inclusion. By binary completeness and Zorn's lemma, any coherent set is contained in a maximally coherent set. Consequently, it is only necessary to specify the maximally coherent sets, π’œmax, then perform a down-closure:π’œ={a:βˆƒaβˆˆπ’œmax,aβŠƒa}The only condition on π’œmax is that any two a,aβˆˆπ’œmax, if they are distinct, then neither contains the other.

As an undirected graph

Coherence spaces are in bijection with undirected graphs whose vertices are tokens.

Given a coherence space π’œ, its associated graph, called the web of π’œ, has vertex set |π’œ|. Its edges are the unordered pairs {Ξ±,Ξ²} such that α∼β. Note that we require each vertex to have a self-edge purely as a convenient convention.

Conversely, given an undirected graph (|π’œ|,E) where each vertex has a self-edge, one obtains a coherence space by taking π’œ to be the family of all cliques of the graph:π’œ={aβŠ†|π’œ|βˆ£βˆ€Ξ±,β∈a,{Ξ±,Ξ²}∈E}.That is, the elements of π’œ are the sets of vertices whose elements are pairwise adjacent.

As a biorthogonally closed family

Let |π’œ| be a set of tokens. Two subsets a,bβŠ†|π’œ| are said to be orthogonal, (or polar), if a∩b is either empty or a singleton. We write this as aβŠ₯b.

For a family π’œβŠ†π’«(|π’œ|), its dual is the familyπ’œβŠ₯={aβŠ†|π’œ|βˆ£βˆ€bβˆˆπ’œ, aβŠ₯b}.A coherence space is a family π’œβŠ†π’«(|π’œ|) satisfyingπ’œ=(π’œβŠ₯)βŠ₯.That is, it is a family that is biorthogonally closed under polarity.

Stable functions

The coherent spaces make up a category 𝐂𝐨𝐑. Each object is a coherent space, and each morphism f:π’œβ†’β„¬ is a stable function.

Definition

A stable function is defined as a function mapping cliques to cliques:f:π’œβ†’β„¬such that it is

  • continuous: If {ai}iβŠ‚π’œ is a directed family, then f(βˆͺiai)=βˆͺif(ai).
  • stable: If a,aβˆˆπ’œ such that aβˆͺaβˆˆπ’œ, then f(a∩a)=f(a)∩f(a).

By stability, if aβŠ‚aβˆˆπ’œ then f(a)βŠ‚f(a), so f is monotonic.

By stability, f(a)=βˆͺaβŠ‚a,a is finitef(a). So it shows that f is determined by its value on finite coherent sets.

For continuity, considering the special case where {ai}iβŠ‚π’œ is the empty set, we have f(βˆ…)=βˆ….

Trace

Given a stable function, its trace Tr(f)βŠ‚π’œΓ—|ℬ| is defined asTr(f):={(a,Ξ²)|aβˆˆπ’œ,β∈f(a),(βˆ€a⊊a,β∉f(a))}That is, each (a,Ξ²)∈Tr(f) is such that a is a minimal coherent set needed to produce token Ξ². By stability, any (a,Ξ²)∈Tr(f) must have a finite a.

Conversely, each stable function is determined by its trace:f(a)={Ξ²:(a,Ξ²)∈Tr(f),aβŠ‚a}

Linearity

A stable function f is linear iff any (a,β)∈Tr(f), a has just one element. This was the original motivation for linear logic.

Linear stable functions are particularly simple and can be thought of as a clique-valued function f:|π’œ|→ℬ such that given a clique aβˆˆπ’œ, βˆͺα∈af(Ξ±) is still a clique in ℬ.

Examples

The intuition of a coherent space is that each token is a trait that an object might possess, and a coherent set of tokens is a set of traits that is possessed by some object simultaneously. There is no object that can possess an incoherent set of tokens as its traits. One explores an object by observing more and more of its traits. The set of observed traits grows, but will always remain coherent.

Categorical constructions

Any coherent space can be specified by its maximally coherent sets. Any union of two distinct maximally coherent sets is incoherent.

Given a coherent space π’œ, its polar π’œβŠ₯ is still a coherent space. This is a dual object construction in category theory.

Given any set X, we have the discrete/minimal coherent space {{Ξ±}:α∈X}, and the indiscrete/maximal coherent space 𝒫(X).

Given two coherent spaces π’œ,ℬ, there is a coherent space π’œ&ℬ (pronounced "A and B"). It is defined as a graph. The set of tokens is the disjoint union of the two sets of tokens:|π’œ&ℬ|=|π’œ|+|ℬ|and the edges of π’œ&ℬ is the union of the edges in π’œ, the edges in ℬ, and {{Ξ±,Ξ²}:Ξ±βˆˆπ’œ,Ξ²βˆˆβ„¬}. More generally, given a family of coherent spaces, {π’œi}i∈I, we can define &i∈Iπ’œi similarly.

Given two coherent spaces π’œ,ℬ, there is a coherent space π’œβŠ”β„¬. The set of tokens is still|π’œβŠ”β„¬|=|π’œ|+|ℬ| and the edges of π’œβŠ”β„¬ is the union of the edges in π’œ, the edges in ℬ. This is the coproduct. This can be defined in general for a family of coherent spaces, {π’œi}i∈I.

Coherent space of stable functions

Given two sets X,Y, the set of partial functions of type Xβ†’Y can be modelled by a coherent space. The token set is XΓ—Y, and the edges are {(x,y),(x,y)} for all xβ‰ x. Equivalently, for each x∈X, define 𝒴x to be the discrete/minimal coherent space of Y. Then &x∈X𝒴x is the coherent space that we constructed.

This can be intuitively understood as follows: a partial function f:Xβ†’Y has the set of traits {(x,f(x)):x∈X∧f(x) is defined}. A maximally coherent set is the set of traits of a total function. As we enumerate the values of a partial function, we enumerate the set of traits, which is coherent at every step. This is useful when f is computed by a Turing machine that might fail to halt on some entries. If f(x) does not halt, then we simply never observe the trait during trait-enumeration. The set of observed traits will remain coherent at all steps of our enumeration.

Now, define 𝒳,𝒴 to be the discrete/minimal coherent spaces. Then f:𝒳→𝒴 is a stable function iff there is a partial function f:Xβ†’Y, such thatf({x})={{f(x)} if f(x) is defined,βˆ… elseand f can be identified with its set of traits, which is a coherent set in &x∈X𝒴x. Thus, Hom𝐂𝐨𝐑(𝒳,𝒴)≃&x∈X𝒴x is a coherent space.

In general, we have a functor β‡’:𝐂𝐨𝐑2→𝐂𝐨𝐑, contravariant in the first argument and covariant in the second argument, such thatHom𝐂𝐨𝐑(π’œ,ℬ)β‰ƒπ’œβ‡’β„¬That is, given any two coherent spaces π’œ,ℬ, the hom-set between them is structured as a coherent space as well. This makes the category enriched over itself.

The token set |π’œβ‡’β„¬| is π’œfinΓ—|ℬ|, where π’œfin is the set of nonempty finite coherent sets in π’œ. Two tokens (a,Ξ²),(a,Ξ²) are coherent iff

  • If aβˆͺaβˆˆπ’œ, then {Ξ²,Ξ²}βˆˆβ„¬.
  • If aβˆͺaβˆˆπ’œ and aβ‰ a, then Ξ²β‰ Ξ².

Note that, if aβˆͺa∉π’œ, then (a,Ξ²),(a,Ξ²) for any Ξ²,β∈|ℬ|. That is, we only demand coherence in ℬ given coherence in π’œ. If there is no coherence in π’œ, then we make no demands on coherence in ℬ.

Coherence spaces as types

Coherence spaces can act as an interpretation for types in type theory where points of a type π’œ are points of the coherence space π’œ. This allows for some structure to be discussed on types. For instance, each term a of a type π’œ can be given a set of finite approximations I which is in fact, a directed set with the subset relation. With a being a coherent subset of the token space |π’œ| (i.e. an element of π’œ), any element of I is a finite subset of a and therefore also coherent, and we have a=⋃ai,ai∈I.

Stable functions

Functions between types π’œβ†’β„¬ are seen as stable functions between coherence spaces. A stable function is defined to be one which respects approximants and satisfies a certain stability axiom. Formally, F:π’œβ†’β„¬ is a stable function when

  1. It is monotone with respect to the subset order (respects approximation, categorically, is a functor over the poset π’œ): aβŠ‚aβˆˆπ’œF(a)βŠ‚F(a).
  2. It is continuous (categorically, preserves filtered colimits): F(⋃i∈I↑ai)=⋃i∈I↑F(ai) where ⋃i∈I↑ is the directed union over I, the set of finite approximants of a.
  3. It is stable: a1βˆͺa2βˆˆπ’œF(a1∩a2)=F(a1)∩F(a2). Categorically, this means that it preserves the pullback:
    Commutative diagram of the pullback preserved by stable functions

Product space

In order to be considered stable, functions of two arguments must satisfy the criterion 3 above in this form: a1βˆͺa2βˆˆπ’œβˆ§b1βˆͺb2βˆˆβ„¬F(a1∩a2,b1∩b2)=F(a1,b1)∩F(a2,b2)which would mean that in addition to stability in each argument alone, the pullback

is preserved with stable functions of two arguments. This leads to the definition of a product space π’œ & β„¬ which makes a bijection between stable binary functions (functions of two arguments) and stable unary functions (one argument) over the product space. The product coherence space is a product in the categorical sense i.e. it satisfies the universal property for products. It is defined by the equations:

  • |π’œ & β„¬|=|π’œ|+|ℬ|=({1}Γ—|π’œ|)βˆͺ({2}Γ—|ℬ|) (i.e. the set of tokens of π’œ & β„¬ is the coproduct (or disjoint union) of the token sets of π’œ and ℬ.
  • Tokens from differents sets are always coherent and tokens from the same set are coherent exactly when they are coherent in that set.
    • (1,Ξ±)βˆΌπ’œ & β„¬(1,Ξ±)Ξ±βˆΌπ’œΞ±
    • (2,Ξ²)βˆΌπ’œ & β„¬(2,Ξ²)Ξ²βˆΌβ„¬Ξ²
    • (1,Ξ±)βˆΌπ’œ & β„¬(2,Ξ²),βˆ€Ξ±βˆˆ|π’œ|,β∈|ℬ|

References