§ Realisability models
For closed terms u
, and type 𝜏
we are going to define u ⊩ 𝜏
(read “u is a
realiser of 𝜏”). Let's say that we have PCF's type: ℕ
and σ → τ
.
-
u ⊩ ℕ
if u reduces to a natural number literal -
f ⊩ σ → τ
if for all s⊩σ
, f s ⊩ τ
.
Some immediate observations:
- This definition is by induction on the types, and assumes little from the terms (it's a logical relation).
- This is “really what we mean” by
x : 𝜏
(except non-termination, not modelled here): realisability has explanatory power. - This relation is usually undecidable.
- It is strongly related to parametricity (in parametricity we associate a binary relation to types, in realisability we associate a (unary) predicate). 4/10
- From this point of view, typing is a (usually decidable) modular approximation of realisability.
- For instance, consider
if x then 1 else (\y -> y)
. It isn't well-typed. - However, if we add
let x = True in if x then 1 else (λy. y)
it becomes a realiser of ℕ
[because upon reduction, it produces an N
, even though it is not "well-typed".
- Typing and realisability are related by a lemma sometimes referred as adequacy.
Take the rule for λ (simplified):
x:X, y:Y ⊢ z : Z
-----------------------
x:X ⊢ λ(y: Y). z : Y → Z
You interpret it as a statement
∀ v⊩A, (∀ w ⊩ B, u[x\v, y\w] ⊩ C) ⟹ \lambda y.u[x\v] ⊩ C
- Then, you prove this statement. 7/10
Once you've done so for each rule, you can conclude (very easy induction) that
if ⊢ u : A, then u ⊩ A. This gives type safety, since realisers are practically
defined as verifying type safety.
What you've gained along the way is that this proof is an open induction. 8/10
In standard combinatorial proofs of type safety, the induction hypothesis may
depend on every case. Adding a form in your language may require redoing the
entire proof. Here the various case in the adequacy lemma will remain true. So
you can just prove the new cases. 9/10
There are many variants of realisability. Tuned for logic, with models instead
of terms, … My favourite is Krivine's realisability with both terms and stacks,
and magic happening when they interact. But this is another story and shall be
told another time. 10/10