- •Sense, Denotation and Semantics
- •Sense and denotation in logic
- •The algebraic tradition
- •The syntactic tradition
- •The two semantic traditions
- •Tarski
- •Heyting
- •Natural Deduction
- •The calculus
- •The rules
- •Interpretation of the rules
- •The Curry-Howard Isomorphism
- •Lambda Calculus
- •Types
- •Terms
- •Operational significance
- •Conversion
- •Description of the isomorphism
- •Relevance of the isomorphism
- •The Normalisation Theorem
- •The weak normalisation theorem
- •Proof of the weak normalisation theorem
- •Degree and substitution
- •Degree and conversion
- •Conversion of maximal degree
- •Proof of the theorem
- •The strong normalisation theorem
- •Sequent Calculus
- •The calculus
- •Sequents
- •Structural rules
- •The intuitionistic case
- •Logical rules
- •Some properties of the system without cut
- •The last rule
- •Subformula property
- •Asymmetrical interpretation
- •Sequent Calculus and Natural Deduction
- •Properties of the translation
- •Strong Normalisation Theorem
- •Reducibility
- •Properties of reducibility
- •Atomic types
- •Product type
- •Arrow type
- •Reducibility theorem
- •Pairing
- •Abstraction
- •The theorem
- •The calculus
- •Types
- •Terms
- •Intended meaning
- •Conversions
- •Normalisation theorem
- •Expressive power: examples
- •Booleans
- •Integers
- •Expressive power: results
- •Canonical forms
- •Representable functions
- •Coherence Spaces
- •General ideas
- •Coherence Spaces
- •The web of a coherence space
- •Interpretation
- •Stable functions
- •Parallel Or
- •Direct product of two coherence spaces
- •The Function-Space
- •The trace of a stable function
- •Representation of the function space
- •The Berry order
- •Partial functions
- •Denotational Semantics of T
- •Simple typed calculus
- •Types
- •Terms
- •Properties of the interpretation
- •Booleans
- •Integers
- •Sums in Natural Deduction
- •Defects of the system
- •Standard conversions
- •The need for extra conversions
- •Subformula Property
- •Extension to the full fragment
- •Commuting conversions
- •Properties of conversion
- •The associated functional calculus
- •Empty type
- •Sum type
- •Additional conversions
- •System F
- •The calculus
- •Comments
- •Representation of simple types
- •Booleans
- •Product of types
- •Empty type
- •Sum type
- •Existential type
- •Representation of a free structure
- •Free structure
- •Representation of the constructors
- •Induction
- •Representation of inductive types
- •Integers
- •Lists
- •Binary trees
- •Trees of branching type U
- •The Curry-Howard Isomorphism
- •Coherence Semantics of the Sum
- •Direct sum
- •Lifted sum
- •dI-domains
- •Linearity
- •Characterisation in terms of preservation
- •Linear implication
- •Linearisation
- •Linearised sum
- •Tensor product and units
- •Cut Elimination (Hauptsatz)
- •The key cases
- •The principal lemma
- •The Hauptsatz
- •Resolution
- •Strong Normalisation for F
- •Idea of the proof
- •Reducibility candidates
- •Remarks
- •Reducibility with parameters
- •Substitution
- •Universal abstraction
- •Universal application
- •Reducibility theorem
- •Representation Theorem
- •Representable functions
- •Numerals
- •Total recursive functions
- •Provably total functions
- •Proofs into programs
- •Formulation of HA2
- •Translation of HA2 into F
- •Representation of provably total functions
- •Semantics of System F
- •What is Linear Logic?
8.2. COHERENCE SPACES |
55 |
8.2Coherence Spaces
A coherence space3 is a set (of sets) A which satis es:
i) Down-closure: if a 2 A and a0 a, then a0 2 A.
ii) Binary completeness: if M A and if 8a1; a2 2 M (a1 [ a2 2 A), then
SM 2 A.
In particular, we have the unde ned object, ? 2 A.
The reader may consider a coherence space as a \domain" (partially ordered by inclusion); as such it is algebraic (any set is the directed union of its nite subsets) and satis es the binary condition (ii), so that
ftg |
ffg |
f0g f1g f2g : : : |
||
@ |
|
|
|
|
|
||||
|
|
|
||
@ |
|
|
|
|
|
|
|||
|
? |
? |
|
are (very basic) coherence spaces, respectively called Bool and Int, but
f1; 2gH f0; 2g |
f0; 1g |
||
H |
|
||
@ |
@ |
||
@ |
H @ |
||
HH |
|||
@ |
@ |
||
|
|
|
H |
f0gQ |
f1g |
f2g |
|
Q |
|
|
|
?
is not. However we shall see that coherence spaces are better regarded as undirected graphs.
8.2.1The web of a coherence space
def S
Consider jAj = A = f : f g 2 Ag. The elements of jAj are called tokens, and the coherence relation modulo A is de ned between tokens by
_ |
0 |
(mod |
A |
) |
i |
f |
; 0 |
g 2 A |
^ |
|
|
|
|
|
which is a re exive symmetric relation, so jAj equipped with _^ is a graph, called the web of A.
3The term espace coherent is used in the French text, and indeed Plotkin has also used the word coherent to refer to this binary condition. However coherent space is established, albeit peculiar, usage for a space with a basis of compact open sets, also called a spectral space. Consequently, the term was modi ed in translation.
56 |
CHAPTER 8. COHERENCE SPACES |
For example, the web of Bool consists of the tokens t and f, which are incoherent; similarly the web of Int is a discrete graph whose points are the integers. Such domains we call at.
The construction of the web of a coherence space is a bijection between coherence spaces and (re exive-symmetric) graphs. From the web we recover the coherence space by:
a 2 A , a jAj ^ 8 1; 2 2 a ( 1 _^ 2 (mod A))
So in the terminology of Graph Theory, a point is exactly a clique, i.e. a complete subgraph.
8.2.2Interpretation
The aim is to interpret a type by a coherence space A, and a term of this type by a point of A (coherent subset of jAj, in nite in general: we write An for the set of nite points).
To work in an e ective manner with points of A, it is necessary to introduce a notion of nite approximation. An approximant of a 2 A is any subset a0 of a. Condition (i) for coherence spaces ensures that approximants are still in A. Above all, there are enough nite approximants to a:
a is the union of its set of nite approximants.
The set I of nite approximants is directed. In other words,
i)I is nonempty (? 2 I).
ii)If a0; a00 2 I, one can nd a 2 I such that a0; a00 a (take a = a0 [ a00).
This comes from the following idea:
On the one hand we have the true (or total) objects of A. For example, in Bool, the singletons ftg and ffg, in Int, f0g, f1g, f2g, etc.
On the other hand, the approximants, of which, in the two simplistic cases considered, ? is the only example. They are partial objects.