Coherent semantics
m (→Stable functions: superfluous newline) |
(disambiguate between the space X \imp Y and the notation F: X \longrightarrow Y) |
||
Line 47: | Line 47: | ||
From now on we will denote <math>X\biorth = (X\orth)\orth</math>. |
From now on we will denote <math>X\biorth = (X\orth)\orth</math>. |
||
− | Given these definitions, the last way to express the conditions on the cliques of <math>X</math> is simply to say that we must have <math>X\biorth = X</math>. |
+ | Given these definitions, the last way to express the conditions on the cliques of a coherent space <math>X</math> is simply to say that we must have <math>X\biorth = X</math>. |
Let <math>X</math> be a cliqued space and define a relation on <math>\web X</math> by setting <math>a\coh_X b</math> iff there is <math>x\in X</math> such that <math>a, b\in x</math>. This relation is obviously symetric; it is also reflexive because all singletons belong to <math>X</math>: if <math>a\in \web X</math> then <math>\{a\}</math> is dual to any element of <math>X\orth</math> (actually <math>\{a\}</math> is dual to any subset of <math>\web X</math>), thus <math>\{a\}</math> is in <math>X\biorth</math>, thus in <math>X</math>. |
Let <math>X</math> be a cliqued space and define a relation on <math>\web X</math> by setting <math>a\coh_X b</math> iff there is <math>x\in X</math> such that <math>a, b\in x</math>. This relation is obviously symetric; it is also reflexive because all singletons belong to <math>X</math>: if <math>a\in \web X</math> then <math>\{a\}</math> is dual to any element of <math>X\orth</math> (actually <math>\{a\}</math> is dual to any subset of <math>\web X</math>), thus <math>\{a\}</math> is in <math>X\biorth</math>, thus in <math>X</math>. |
||
Line 60: | Line 60: | ||
{{Definition|title=Stable function| |
{{Definition|title=Stable function| |
||
− | Let <math>X</math> and <math>Y</math> be two coherent spaces. A function <math>F:X\mapsto Y</math> is ''stable'' if it satisfies: |
+ | Let <math>X</math> and <math>Y</math> be two coherent spaces. A function <math>F:X\longrightarrow Y</math> is ''stable'' if it satisfies: |
* it is non decreasing: for any <math>x,y\in X</math> if <math>x\subset y</math> then <math>F(x)\subset F(y)</math>; |
* it is non decreasing: for any <math>x,y\in X</math> if <math>x\subset y</math> then <math>F(x)\subset F(y)</math>; |
||
* it is continuous (in the Scott sense): if <math>A</math> is a directed family of cliques of <math>X</math>, that is if for any <math>x,y\in A</math> there is a <math>z\in A</math> such that <math>x\cup y\subset z</math>, then <math>\bigcup_{x\in A}F(x) = F(\bigcup A)</math>; |
* it is continuous (in the Scott sense): if <math>A</math> is a directed family of cliques of <math>X</math>, that is if for any <math>x,y\in A</math> there is a <math>z\in A</math> such that <math>x\cup y\subset z</math>, then <math>\bigcup_{x\in A}F(x) = F(\bigcup A)</math>; |
||
Line 69: | Line 69: | ||
{{Theorem| |
{{Theorem| |
||
− | Let <math>F:X\mapsto Y</math> be a non-decreasing function from the coherent space <math>X</math> to the coherent space <math>Y</math>. The function <math>F</math> is stable iff it satisfies: for any <math>x\in X</math>, <math>b\in\web Y</math>, if <math>b\in F(x)</math> then there is a finite clique <math>x_0\subset x</math> such that: |
+ | Let <math>F:X\longrightarrow Y</math> be a non-decreasing function from the coherent space <math>X</math> to the coherent space <math>Y</math>. The function <math>F</math> is stable iff it satisfies: for any <math>x\in X</math>, <math>b\in\web Y</math>, if <math>b\in F(x)</math> then there is a finite clique <math>x_0\subset x</math> such that: |
* <math>b\in F(x_0)</math>, |
* <math>b\in F(x_0)</math>, |
||
* for any <math>y\subset x</math> if <math>b\in F(y)</math> then <math>x_0\subset y</math> (<math>x_0</math> is ''the'' minimum sub-clique of <math>x</math> such that <math>b\in F(x_0)</math>). |
* for any <math>y\subset x</math> if <math>b\in F(y)</math> then <math>x_0\subset y</math> (<math>x_0</math> is ''the'' minimum sub-clique of <math>x</math> such that <math>b\in F(x_0)</math>). |
||
Line 77: | Line 77: | ||
{{Definition|title=The space of stable functions| |
{{Definition|title=The space of stable functions| |
||
− | Let <math>X</math> and <math>Y</math> be coherent spaces. We denote by <math>X_{\mathrm{fin}}</math> the set of ''finite'' cliques of <math>X</math>. The function space <math>X\rightarrow Y</math> is defined by: |
+ | Let <math>X</math> and <math>Y</math> be coherent spaces. We denote by <math>X_{\mathrm{fin}}</math> the set of ''finite'' cliques of <math>X</math>. The function space <math>X\imp Y</math> is defined by: |
− | * <math>\web{X\rightarrow Y} = X_{\mathrm{fin}}\times \web Y</math>, |
+ | * <math>\web{X\imp Y} = X_{\mathrm{fin}}\times \web Y</math>, |
− | * <math>(x_0, a)\coh_{X\rightarrow Y}(y_0, b)</math> iff <math>\begin{cases}\text{if } x_0\cup y_0\in X\text{ then } a\coh_Y b,\\ |
+ | * <math>(x_0, a)\coh_{X\imp Y}(y_0, b)</math> iff <math>\begin{cases}\text{if } x_0\cup y_0\in X\text{ then } a\coh_Y b,\\ |
\text{if } x_0\cup y_0\in X\text{ and } a = b\text{ then } x_0 = y_0\end{cases}</math>. |
\text{if } x_0\cup y_0\in X\text{ and } a = b\text{ then } x_0 = y_0\end{cases}</math>. |
||
}} |
}} |
||
− | One could equivalently define the strict coherence relation on <math>X\rightarrow Y</math> by: <math>(x_0,a)\scoh_{X\rightarrow Y}(y_0, b)</math> iff <math>x_0\cup y_0\in X</math> and <math>x_0\neq y_0</math> entails that <math>a\scoh_Y b</math>. |
+ | One could equivalently define the strict coherence relation on <math>X\imp Y</math> by: <math>(x_0,a)\scoh_{X\imp Y}(y_0, b)</math> iff <math>x_0\cup y_0\in X</math> and <math>x_0\neq y_0</math> entails that <math>a\scoh_Y b</math>. |
{{Definition|title=Trace of a stable function| |
{{Definition|title=Trace of a stable function| |
||
− | Let <math>F:X\mapsto Y</math> be a function. The ''trace'' of <math>F</math> is the set: |
+ | Let <math>F:X\longrightarrow Y</math> be a function. The ''trace'' of <math>F</math> is the set: |
<math>\mathrm{Tr}(F) = \{(x_0, b), x_0</math> minimal such that <math> b\in F(x_0)\}</math>. |
<math>\mathrm{Tr}(F) = \{(x_0, b), x_0</math> minimal such that <math> b\in F(x_0)\}</math>. |
||
Line 92: | Line 92: | ||
{{theorem| |
{{theorem| |
||
− | <math>F</math> is stable iff <math>\mathrm{Tr}(F)</math> is a clique of the function space <math>X\rightarrow Y</math> |
+ | <math>F</math> is stable iff <math>\mathrm{Tr}(F)</math> is a clique of the function space <math>X\imp Y</math> |
}} |
}} |
||
Line 98: | Line 98: | ||
{{Definition|title=The evaluation function| |
{{Definition|title=The evaluation function| |
||
− | Let <math>f</math> be a clique in <math>X\rightarrow Y</math>. We define a function <math>\mathrm{Fun}\,f:X\mapsto Y</math> by: <math>\mathrm{Fun}\,f(x) = \{b\in Y,</math> there is <math>x_0\subset x</math> such that <math>(x_0, b)\in f\}</math>. |
+ | Let <math>f</math> be a clique in <math>X\imp Y</math>. We define a function <math>\mathrm{Fun}\,f:X\longrightarrow Y</math> by: <math>\mathrm{Fun}\,f(x) = \{b\in Y,</math> there is <math>x_0\subset x</math> such that <math>(x_0, b)\in f\}</math>. |
}} |
}} |
||
{{Theorem|title=Closure| |
{{Theorem|title=Closure| |
||
− | If <math>f</math> is a clique of the function space <math>X\rightarrow Y</math> then we have <math>\mathrm{Tr}(\mathrm{Fun}\,f) = f</math>. Conversely if <math>F:X\mapsto Y</math> is a stable function then we have <math>F = \mathrm{Fun}\,\mathrm{Tr}(F)</math>. |
+ | If <math>f</math> is a clique of the function space <math>X\imp Y</math> then we have <math>\mathrm{Tr}(\mathrm{Fun}\,f) = f</math>. Conversely if <math>F:X\longrightarrow Y</math> is a stable function then we have <math>F = \mathrm{Fun}\,\mathrm{Tr}(F)</math>. |
}} |
}} |
||
Line 118: | Line 118: | ||
Given cliques <math>x_1</math> and <math>x_2</math> in <math>X_1</math> and <math>X_2</math>, we define the subset <math>\langle x_1, x_2\rangle</math> of <math>\web{X_1\with X_2}</math> by: <math>\langle x_1, x_2\rangle = \{1\}\times x_1\cup \{2\}\times x_2</math>. Then <math>\langle x_1, x_2\rangle</math> is a clique in <math>X_1\with X_2</math>. |
Given cliques <math>x_1</math> and <math>x_2</math> in <math>X_1</math> and <math>X_2</math>, we define the subset <math>\langle x_1, x_2\rangle</math> of <math>\web{X_1\with X_2}</math> by: <math>\langle x_1, x_2\rangle = \{1\}\times x_1\cup \{2\}\times x_2</math>. Then <math>\langle x_1, x_2\rangle</math> is a clique in <math>X_1\with X_2</math>. |
||
− | Conversely, given a clique <math>x\in X_1\with X_2</math>, for <math>i=1,2</math> we define <math>\pi_i(x) = \{a\in X_i, (i, a)\in x\}</math>. Then <math>\pi_i(x)</math> is a clique in <math>X_i</math> and the function <math>\pi_i:X_1\with X_2\mapsto X_i</math> is stable. |
+ | Conversely, given a clique <math>x\in X_1\with X_2</math>, for <math>i=1,2</math> we define <math>\pi_i(x) = \{a\in X_i, (i, a)\in x\}</math>. Then <math>\pi_i(x)</math> is a clique in <math>X_i</math> and the function <math>\pi_i:X_1\with X_2\longrightarrow X_i</math> is stable. |
Furthemore these two operations are inverse of each other: <math>\pi_i(\langle x_1, x_2\rangle) = x_i</math> and <math>\langle\pi_1(x), \pi_2(x)\rangle = x</math>. In particular any clique in <math>X_1\with X_2</math> is of the form <math>\langle x_1, x_2\rangle</math>. |
Furthemore these two operations are inverse of each other: <math>\pi_i(\langle x_1, x_2\rangle) = x_i</math> and <math>\langle\pi_1(x), \pi_2(x)\rangle = x</math>. In particular any clique in <math>X_1\with X_2</math> is of the form <math>\langle x_1, x_2\rangle</math>. |
||
Line 129: | Line 129: | ||
}} |
}} |
||
− | In particular this means that if we define <math>\mathrm{Eval}:(X\rightarrow Y)\with X\mapsto Y</math> by: <math>\mathrm{Eval}(\langle f, x\rangle) = \mathrm{Fun}\,f(x)</math> then <math>\mathrm{Eval}</math> is stable. |
+ | In particular this means that if we define <math>\mathrm{Eval}:(X\imp Y)\with X\longrightarrow Y</math> by: <math>\mathrm{Eval}(\langle f, x\rangle) = \mathrm{Fun}\,f(x)</math> then <math>\mathrm{Eval}</math> is stable. |
== The monoidal structure of coherent semantics == |
== The monoidal structure of coherent semantics == |
||
Line 136: | Line 136: | ||
{{Definition|title=Linear function| |
{{Definition|title=Linear function| |
||
− | A function <math>F:X\mapsto Y</math> is ''linear'' if it is stable and furthemore satisfies: for any family <math>A</math> of pairwise compatible cliques of <math>X</math>, that is such that for any <math>x, y\in A</math>, <math>x\cup y\in X</math>, we have <math>\bigcup_{x\in A}F(x) = F(\bigcup A)</math>. |
+ | A function <math>F:X\longrightarrow Y</math> is ''linear'' if it is stable and furthemore satisfies: for any family <math>A</math> of pairwise compatible cliques of <math>X</math>, that is such that for any <math>x, y\in A</math>, <math>x\cup y\in X</math>, we have <math>\bigcup_{x\in A}F(x) = F(\bigcup A)</math>. |
}} |
}} |
||
Line 146: | Line 146: | ||
{{Theorem| |
{{Theorem| |
||
− | Let <math>F:X\mapsto Y</math> be a continuous function. Then <math>F</math> is linear iff it satisfies: for any clique <math>x\in X</math> and any <math>b\in F(x)</math> there is a unique <math>a\in x</math> such that <math>b\in F(\{a\})</math>. |
+ | Let <math>F:X\longrightarrow Y</math> be a continuous function. Then <math>F</math> is linear iff it satisfies: for any clique <math>x\in X</math> and any <math>b\in F(x)</math> there is a unique <math>a\in x</math> such that <math>b\in F(\{a\})</math>. |
}} |
}} |
||
Line 161: | Line 161: | ||
{{Definition|title=Linear trace| |
{{Definition|title=Linear trace| |
||
− | Let <math>F:X\mapsto Y</math> be a function. The ''linear trace'' of <math>F</math> denoted as <math>\mathrm{LinTr}(F)</math> is the set: <math>\mathrm{LinTr}(F) = \{(a, b)\in\web X\times\web Y</math> such that <math>b\in F(\{a\})\}</math>. |
+ | Let <math>F:X\longrightarrow Y</math> be a function. The ''linear trace'' of <math>F</math> denoted as <math>\mathrm{LinTr}(F)</math> is the set: <math>\mathrm{LinTr}(F) = \{(a, b)\in\web X\times\web Y</math> such that <math>b\in F(\{a\})\}</math>. |
}} |
}} |
||
Line 169: | Line 169: | ||
{{Definition|title=Evaluation of linear function| |
{{Definition|title=Evaluation of linear function| |
||
− | Let <math>f</math> be a clique of <math>X\limp Y</math>. We define the function <math>\mathrm{LinFun}\,f:X\mapsto Y</math> by: <math>\mathrm{LinFun}\,f(x) = \{b\in\web Y</math> such that there is an <math>a\in x</math> satisfying <math>(a,b)\in f\}</math>. |
+ | Let <math>f</math> be a clique of <math>X\limp Y</math>. We define the function <math>\mathrm{LinFun}\,f:X\longrightarrow Y</math> by: <math>\mathrm{LinFun}\,f(x) = \{b\in\web Y</math> such that there is an <math>a\in x</math> satisfying <math>(a,b)\in f\}</math>. |
}} |
}} |
||
{{Theorem|title=Linear closure| |
{{Theorem|title=Linear closure| |
||
− | Let <math>f</math> be a clique in <math>X\limp Y</math>. Then we have <math>\mathrm{LinTr}(\mathrm{LinFun}\, f) = f</math>. Conversely if <math>F:X\mapsto Y</math> is linear then we have <math>F = \mathrm{LinFun}\,\mathrm{LinTr}(F)</math>. |
+ | Let <math>f</math> be a clique in <math>X\limp Y</math>. Then we have <math>\mathrm{LinTr}(\mathrm{LinFun}\, f) = f</math>. Conversely if <math>F:X\longrightarrow Y</math> is linear then we have <math>F = \mathrm{LinFun}\,\mathrm{LinTr}(F)</math>. |
}} |
}} |
||
Line 190: | Line 190: | ||
The closedness is a consequence of the existence of the linear isomorphism: |
The closedness is a consequence of the existence of the linear isomorphism: |
||
− | <math>\varphi:X\tens Y\limp Z\ \stackrel{\sim}{\rightarrow}\ X\limp(Y\limp Z)</math> |
+ | <math>\varphi:X\tens Y\limp Z\ \stackrel{\sim}{\longrightarrow}\ X\limp(Y\limp Z)</math> |
that is defined by its linear trace: <math>\mathrm{LinTr}(\varphi) = \{(((a, b), c), (a, (b, c))),\, a\in\web X,\, b\in \web Y,\, c\in\web Z\}</math>. |
that is defined by its linear trace: <math>\mathrm{LinTr}(\varphi) = \{(((a, b), c), (a, (b, c))),\, a\in\web X,\, b\in \web Y,\, c\in\web Z\}</math>. |
||
Line 208: | Line 208: | ||
This is in particular consequence of the existence of the isomorphism: |
This is in particular consequence of the existence of the isomorphism: |
||
− | <math>\varphi:X\limp Y\ \stackrel{\sim}{\rightarrow}\ Y\orth\limp X\orth</math> |
+ | <math>\varphi:X\limp Y\ \stackrel{\sim}{\longrightarrow}\ Y\orth\limp X\orth</math> |
defined by its linear trace: <math>\mathrm{LinTr}(\varphi) = \{((a, b), (b, a)),\, a\in\web X,\, b\in\web Y\}</math>. |
defined by its linear trace: <math>\mathrm{LinTr}(\varphi) = \{((a, b), (b, a)),\, a\in\web X,\, b\in\web Y\}</math>. |
||
Line 222: | Line 222: | ||
{{Theorem| |
{{Theorem| |
||
− | Let <math>X</math> be a coherent space. Denote by <math>\beta:X\rightarrow \oc X</math> the stable function whose trace is: <math>\mathrm{Tr}(\beta) = \{(x_0, x_0),\, x_0\in X_{\mathrm{fin}}\}</math>. Then for any coherent space <math>Y</math> and any stable function <math>F: X\rightarrow Y</math> there is a unique ''linear'' function <math>\bar F:\oc X\rightarrow Y</math> such that <math>F = \bar F\circ \beta</math>. |
+ | Let <math>X</math> be a coherent space. Denote by <math>\beta:X\longrightarrow \oc X</math> the stable function whose trace is: <math>\mathrm{Tr}(\beta) = \{(x_0, x_0),\, x_0\in X_{\mathrm{fin}}\}</math>. Then for any coherent space <math>Y</math> and any stable function <math>F: X\imp Y</math> there is a unique ''linear'' function <math>\bar F:\oc X\longrightarrow Y</math> such that <math>F = \bar F\circ \beta</math>. |
− | Furthermore we have <math>X\rightarrow Y = \oc X\limp Y</math>. |
+ | Furthermore we have <math>X\imp Y = \oc X\limp Y</math>. |
}} |
}} |
||
Revision as of 21:32, 4 March 2009
Coherent semantics was invented by Girard in the paper The system F, 15 years later[1]with the objective of building a denotationnal interpretation of second order intuitionnistic logic (aka polymorphic lambda-calculus).
Coherent semantics is based on the notion of stable functions that was initially proposed by Gérard Berry. Stability is a condition on Scott continuous functions that expresses the determinism of the relation between the output and the input: the typical Scott continuous but non stable function is the parallel or because when the two inputs are both set to true, only one of them is the reason why the result is true but there is no way to determine which one.
A further achievement of coherent semantics was that it allowed to endow the set of stable functions from X to Y with a structure of domain, thus closing the category of coherent spaces and stable functions. However the most interesting point was the discovery of a special class of stable functions, linear functions, which was the first step leading to Linear Logic.
Contents |
The cartesian closed structure of coherent semantics
There are three equivalent definitions of coherent spaces: the first one, coherent spaces as domains, is interesting from a historical point of view as it emphazises the fact that coherent spaces are particular cases of Scott domains. The second one, coherent spaces as graphs, is the most commonly used and will be our "official" definition in the sequel. The last one, cliqued spaces is a particular example of a more general scheme that one could call "symmetric reducibility"; this scheme is underlying lots of constructions in linear logic such as phase semantics or the proof of strong normalisation for proof-nets.
Coherent spaces
A coherent space X is a collection of subsets of a set satisfying some conditions that will be detailed shortly. The elements of X are called the cliques of X (for reasons that will be made clear in a few lines). The set is called the web of X and its elements are called the points of X; thus a clique is a set of points. Note that the terminology is a bit ambiguous as the points of X are the elements of the web of X, not the elements of X.
The definitions below give three equivalent conditions that have to be satisfied by the cliques of a coherent space.
As domains
The cliques of X have to satisfy:
- subset closure: if then ,
- singletons: for .
- binary compatibility: if A is a family of pairwise compatible cliques of X, that is if for any , then .
A coherent space is thus ordered by inclusion; one easily checks that it is a domain. In particular finite cliques of X correspond to compact elements.
As graphs
There is a reflexive and symetric relation on (the coherence relation) such that any subset x of is a clique of X iff . In other terms X is the set of complete subgraphs of the simple unoriented graph of the relation; this is the reason why elements of X are called cliques.
The strict coherence relation on X is defined by: iff and .
A coherent space in the domain sense is seen to be a coherent space in the graph sense by setting iff ; conversely one can check that cliques in the graph sense are subset closed and satisfy the binary compatibility condition.
A coherent space is completely determined by its web and its coherence relation, or equivalently by its web and its strict coherence.
As cliqued spaces
Definition (Duality)
Let x and y be two sets. We will say that they are dual, written if their intersection contains at most one element: .
Let T be a set and X be a family of subsets of T. We define the dual of X to be the collection of subsets of T that are dual to all elements of X:
Given such a collection X of subsets of T one sees that we have . The reverse inclusion is not true in general, however it holds in the case where for some collection Y of subsets of T. In other terms we always have .
From now on we will denote .
Given these definitions, the last way to express the conditions on the cliques of a coherent space X is simply to say that we must have .
Let X be a cliqued space and define a relation on by setting iff there is such that . This relation is obviously symetric; it is also reflexive because all singletons belong to X: if then {a} is dual to any element of (actually {a} is dual to any subset of ), thus {a} is in , thus in X.
Let . Then ; indeed there is an such that . This x is dual to any , that is meets any in a most one point. Since this is also true of {a,b}, so that {a,b} is in thus in X. Now let x be a clique for and y be an element of . Suppose , then since a and b are coherent (by hypothesis on x) we have and since we must have that {a,b} and y meet in at most one point. Thus a = b and we have shown that x and y are dual. Since y was arbitrary this means that x is in , thus in X. Finally we get that any set of pairwise coherent points of X is in X. Conversely given its points are obviously pairwise coherent so eventually we get that X is a coherent space in the graph sense.
Conversely given a coherent space X in the graph sense, one can check that it is a cliqued space. Call anticlique a set of pairwise incoherent points: for all a,b in y, if then a = b. Any anticlique intersects any clique in at most one point: let x be a clique and y be an anticlique, then if , since we have and since y is an anticlique we have a = b.
Thus the collection of anticliques of X is the dual of X. Note that the incoherence relation defined above is reflexive and symetric, so that is a coherent space in the graph sense. Thus we can do for exactly what we've just done for X and consider the anti-anticliques, that is the anticliques for the incoherent relation which are the cliques for the in-incoherent relation. It is not difficult to see that this in-incoherence relation is just the coherence relation we started with; we thus obtain that , so that X is a cliqued space.
Stable functions
Definition (Stable function)
Let X and Y be two coherent spaces. A function is stable if it satisfies:
- it is non decreasing: for any if then ;
- it is continuous (in the Scott sense): if A is a directed family of cliques of X, that is if for any there is a such that , then ;
- it satisfies the stability condition: if are compatible, that is if , then .
This definition is admitedly not very tractable. An equivalent and most useful caracterisation of stable functions is given by the following theorem.
Theorem
Let be a non-decreasing function from the coherent space X to the coherent space Y. The function F is stable iff it satisfies: for any , , if then there is a finite clique such that:
- ,
- for any if then (x0 is the minimum sub-clique of x such that ).
Note that the stability condition doesn't depend on the coherent space structure and can be expressed more generally for continuous functions on domains. However, as mentionned in the introduction, the restriction to coherent spaces allows to endow the set of stable functions from X to Y with a structure of coherent space.
Definition (The space of stable functions)
Let X and Y be coherent spaces. We denote by Xfin the set of finite cliques of X. The function space is defined by:
- ,
- iff .
One could equivalently define the strict coherence relation on by: iff and entails that .
Definition (Trace of a stable function)
Let be a function. The trace of F is the set:
Tr(F) = {(x0,b),x0 minimal such that .
Theorem
F is stable iff Tr(F) is a clique of the function space
In particular the continuity of F entails that if x0 is minimal such that , then x0 is finite.
Definition (The evaluation function)
Let f be a clique in . We define a function by: there is such that .
Theorem (Closure)
If f is a clique of the function space then we have . Conversely if is a stable function then we have .
Cartesian product
Definition (Cartesian product)
Let X1 and X2 be two coherent spaces. Their cartesian products is the coherent space defined by:
- the web is the disjoint union of the webs: ;
- the coherence relation is the serie composition of the relations on X1 and X2: iff or i = j and .
This definition is just the way to put a coherent space structure on the cartesian product. Indeed one easily shows the
Theorem
Given cliques x1 and x2 in X1 and X2, we define the subset of by: . Then is a clique in .
Conversely, given a clique , for i = 1,2 we define . Then πi(x) is a clique in Xi and the function is stable.
Furthemore these two operations are inverse of each other: and . In particular any clique in is of the form .
Altogether the results above (and a few other more that we shall leave to the reader) allow to get:
Theorem
The category of coherent spaces and stable functions is cartesian closed.
In particular this means that if we define by: then Eval is stable.
The monoidal structure of coherent semantics
Linear functions
Definition (Linear function)
A function is linear if it is stable and furthemore satisfies: for any family A of pairwise compatible cliques of X, that is such that for any , , we have .
In particular if we take A to be the empty family, then we have .
The condition for linearity is quite similar to the condition for Scott continuity, except that we dropped the constraint that A is directed. Linearity is therefore much stronger than stability: most stable functions are not linear.
As with stable function we have an equivalent and much more tractable caracterisation of linear function:
Theorem
Let be a continuous function. Then F is linear iff it satisfies: for any clique and any there is a unique such that .
Just as the caracterisation theorem for stable functions allowed us to build the coherent space of stable functions, this theorem will help us to endow the set of linear maps with a structure of coherent space.
Definition (The linear functions space)
Let X and Y be coherent spaces. The linear function space is defined by:
- ,
- iff
Equivalently one could define the strict coherence to be: iff entails .
Definition (Linear trace)
Let be a function. The linear trace of F denoted as LinTr(F) is the set: such that .
Theorem
If F is linear then LinTr(F) is a clique of .
Definition (Evaluation of linear function)
Let f be a clique of . We define the function by: such that there is an satisfying .
Theorem (Linear closure)
Let f be a clique in . Then we have . Conversely if is linear then we have .
It remains to define a tensor product and we will get that the category of coherent spaces with linear functions is monoidal symetric (it is actually *-autonomous).
Tensor product
Definition (Tensor product)
Let X and Y be coherent spaces. Their tensor product is defined by: and iff and .
Theorem
The category of coherent spaces with linear maps and tensor product is monoidal symetric closed.
The closedness is a consequence of the existence of the linear isomorphism:
that is defined by its linear trace: .
Linear negation
Definition (Linear negation)
Let X be a coherent space. We define the incoherence relation on by: iff entails a = b. The incoherence relation is reflexive and symetric; we call dual or linear negation of X the associated coherent space denoted , thus defined by: and iff .
The cliques of are called the anticliques of X. As seen in the section on cliqued spaces we have .
Theorem
The category of coherent spaces with linear maps, tensor product and linear negation is *-autonomous.
This is in particular consequence of the existence of the isomorphism:
defined by its linear trace: .
Exponentials
In linear algebra, bilinear maps may be factorized through the tensor product. Similarly there is a coherent space that allows to factorize stable functions through linear functions.
Definition (Of course)
Let X be a coherent space; recall that Xfin denotes the set of finite cliques of X. We define the space (read of course X) by: and iff is a clique of X.
Theorem
Let X be a coherent space. Denote by the stable function whose trace is: . Then for any coherent space Y and any stable function there is a unique linear function such that .
Furthermore we have .
References
- ↑ Girard, Jean-Yves. The System F of Variable Types, Fifteen Years Later. Theoretical Computer Science. Volume 45, Issue 2, pp. 159-192, doi:10.1016/0304-3975(86)90044-7, 1986.