Coherent semantics
Coherent semantics was invented by Girard in the paper The system F, 15 years later. It is a refinement of the former qualitative domains that allows for building an interpretation of system F terms, that is for second order quantifiers.
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.
Although coherent semantics allowed to solve for the first time the old standing problem of building a denotationnal semantics for polymorphism, one of its main interest is that it also lead Girard to discover the notion of linear function, which rapidly gave rise to linear logic. It is one of the originality of linear logic that its syntax was derived from its semantics.
Contents |
Preliminary definitions and notations
There are two equivalent definitions of coherence spaces: the first one, coherent spaces as graphs, is the most commonly used and will be our "official" definition in the sequel. The second one, coherent spaces as domains, is however interesting from a historical point of view.
Coherent spaces
As graphs
Definition (Coherent space)
A coherent space X is a set of points denoted and called the web of X together with a reflexive and symetric relation on called the coherence relation. Coherent spaces are identified with the simple unoriented graphes of their coherence relations.
The strict coherence relation on X is defined by: iff and .
Definition (Clique)
A clique of the coherent space X is a set of points in that are pairwise coherent. In other terms a clique is a subgraph of X that is complete. The set of cliques of X is denoted as .
As domains
Definition (Coherent space)
A coherent space X is a family of subsets of a set which is closed by subset (if then ) and satisfies the binary compatibility: if A is a family of pairwise compatible elements of X, that is if for any , then .
The reader will easily check that one recovers the previous definition by setting iff and conversely that the set of cliques of a coherent space in the graph sense is a coherent space in the domain sense.
Stable functions
From now on we will identify the coherent space (in the graph sense) X with its set of cliques . Accordingly a function F from X to Y is a function defined on the cliques of X taking values in the cliques of Y.
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 ).