- •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?
Chapter 8
Coherence Spaces
The earliest work in denotational semantics was done by [Scott69] for the untyped-calculus, and much has been written since then. His approach is characterised by continuity, i.e. the preservation of directed joins. In this chapter, a novel kind of domain theory is introduced, in which we also have (and preserve) meets bounded above (pullbacks). This property, called stability, was originally introduced by [Berry] in an attempt to give a semantic characterisation of sequential algorithms. We shall nd that this semantics is well adapted to system F and leads us towards linear logic.
8.1General ideas
The fundamental idea of denotational semantics is to interpret reduction (a dynamic notion) by equality (a static notion). To put it in another way, we model the invariants of the calculi. This said, there are models and models: it has been known since G•odel (1930) how to construct models as maximally consistent extensions. This is certainly not what we mean, because it gives no information.
We have in mind rather to take literally the na•ve interpretation | that an object of type U ! V is a function from U to V | and see if we can give a reasonable meaning to the word \function". In this way of looking at things, we try to avoid being obsessed by completeness, but instead look for simple geometrical ideas.
The rst idea which comes to mind is the following:
type = set.
U ! V is the set of all functions (in the set-theoretic sense) from U to V .
53
54 |
CHAPTER 8. COHERENCE SPACES |
This interpretation is all very well, but it does not explain anything. The computationally interesting objects just get drowned in a sea of set-theoretic functions. The function spaces also quickly become enormous.
Kreisel had the following idea (hereditarily e ective operations):
type = partial equivalence relation on N.
U ! V is the set of |
(codes of) |
partial recursive functions f such that, if |
x U y, then f(x) V f(y), subject to the equivalence relation: |
||
f (U ! V ) g |
i |
8x; y (x U y ) f(x) V g(y)) |
This sticks more closely to the computational paradigm which we seek to model | a bit too closely, it seems, for in fact it hardly does more than interpret the syntax by itself, modulo some unexciting coding.
Scott's idea is much better:
type = topological space.
U ! V = continuous functions from U to V .
Now it is well known that topology does not lend itself well to the construction of function spaces. When should we say that a sequence of functions converges | pointwise, or uniformly in some way1?
To resolve these problems, Scott was led to imposing drastic restrictions on his topological spaces which are far removed from the traditional geometrical spirit of topology2. In fact his spaces are really only partially ordered sets with directed joins: the topology is an incidental feature. So it is natural to ask oneself whether perhaps the topological intuition is itself false, and look for something else.
1The most common (but by no means the universal) answer to this question is to use the compact-open topology, in which a function lies in a basic open set if, when restricted to a speci ed compact set, its values lie in a speci ed open set. This topology is only well-behaved when the spaces are locally compact (every point has a base of compact neighbourhoods), and even then the function space need not itself be locally compact.
2There is, however, a logical view of topology, which has been set out in a computer science context by [Abr88, ERobinson, Smyth, Vickers].