- •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?
11.3. REPRESENTATION OF SIMPLE TYPES |
83 |
11.3Representation of simple types
A large part of the interest in F is in the possibility of de ning commonly used types in it; we shall devote the rest of the chapter to this.
11.3.1Booleans
We de ne Bool (not the one of system T) as X: X!X!X with
def |
def |
T = X: xX : yX : x |
F = X: xX : yX : y |
and if u; v; t are of respective types U; U; Bool we de ne D u v t of type U by
def
D u v t = t U u v
Let us calculate D u v T and D u v F:
D u v T = ( X: xX : yX : x) U u v ( xU : yU : x) u v
( yU : u) v u
D u v F = ( X: xX : yX : y) U u v ( xU : yU : y) u v
( yU : yU ) v v
11.3.2Product of types
def
We de ne U V = X: (U!V !X)!X with
|
u; v |
|
def |
h |
i |
= X: xU!V !X : x u v |
|
|
|
The projections are de ned as follows:
def |
def |
1t = t U ( xU : yV : x) |
2t = t V ( xU : yV : y) |
84 |
CHAPTER 11. SYSTEM F |
Let us calculate 1hu; vi and 2hu; vi:
1hu; vi = ( X: xU!V !X : x u v) U ( xU : yV : x) ( xU!V !U : x u v) ( xU : yV : x)
( xU : yV : x) u v ( yV : u) v
u
2hu; vi = ( X: xU!V !X : x u v) V ( xU : yV : yV ) ( xU!V !V : x u v) ( xU : yV : y)
( xU : yV : y) u v ( yV : y) v
v
Note |
that h 1t; 2ti |
t does not hold, even if we allow xU : t x |
t and |
X: t X |
t. |
|
|
11.3.3Empty type
def def
We can de ne Emp = X: X with "U t = t U.
11.3.4 Sum type
|
def |
If U; V are types, we can de ne U + V = X: (U!X)!(V !X)!X. |
|
If u; v are of types U; V we de ne 1u and 2v of type U + V by |
|
def |
def |
1u = X: xU!X : yV !X : x u |
2v = X: xU!X : yV !X : y v |
If u; v; t are of respective types U; U; R + S, we de ne x: u y: v t of type U by
def U V
x: u y: v t = t U ( x : u) ( y : v)
Let us calculate x: u y: v ( 1r):
x: u y: v ( 1r) = ( X: xR!X : yS!X : x r) U ( xR: u) ( yS: v) ( xR!U : yS!U : x r) ( xR: u) ( yS: v) ( yS!U : ( xR: u) r) ( yS: v)
( xR: u) r u[r=x]
and similarly x: u y: v ( 2s) v[s=y].