Execises 2: Stable models of $λ$-calculus

Teacher: Paul-André Melliès

\newcommand\xto\xrightarrow \newcommand\xfrom\xleftarrow \newcommand{\Tr}{\mathop{\mathrm{Tr}}}

Stable models (dI-domains): by Gérard Béry, at the same time (in the 80’s), Girard introduced dilators (models of system F).

In this problem, we call a graph $A ≝ (V, E)$ a set $V$ of vertices equipped with a reflexive and symmetric relation $E ⊆ V × V$ describing the edges.

A clique of a graph $A$:

is defined a a subset $u ⊆ V$ such that ∀a,a' ∈ u, \quad (a,a') ⊆ E

One recalls that a continuous function is monotonic by definition.

Q1. Show that the set of cliques of $A$ ordered by inclusion defines a domain $(D_A, ≤_A)$

It is a DCPO:

  • It is a partial order
  • Let $D$ be a directed set of cliques. The union $\bigcup D$ of these cliques

    • is still a clique: indeed, let $a, b ∈ \bigcup D$. There exist two cliques $u_a, u_b$ such that a ∈ u_a \qquad \text{ and } \qquad b ∈ u_b But as $D$ is directed, there exists a clique $v \supset u_a, u_b$, so as $a, b ∈ v$, $(a,b) ⊆ E$.

    • and clearly it is the lub of $D$

It has a smallest element: the empty clique.

NB: We will interpret every type of ST $λ$-calculus (and even linear logic) as such a domain: a coherence space (introduced by Girard, subcategory of dI-domains).

Q2. Show that

a continuous function f: D_A ⟶ D_B is entirely described by its restriction !A \hookrightarrow D_A \xto f D_B

to the set (noted $!A$) of the finite cliques of the graph $A$.

f(u) = f\Big(\bigcup\limits_{u' ⊆_f u} u'\Big) \overset{\text{continuity}}{=} \bigcup\limits_{u' ⊆_f u} f(u')

because ℱ_u ≝ \lbrace u' ∈ !A \; \mid \; u' ⊆ u\rbrace is clearly a filter, so $f$ commutes with its lub.

Q3. From this, deduce the existence of a bijection between the set of continuous functions from $D_A$ to $D_B$ and the set of monotonic functions from $!A$ to $D_B$, and describe how the bijection works.

Φ: \begin{cases} Cont(D_A,D_B) &⟶ Mon(!A, D_B) \\ f &⟼ f_{|!A} \end{cases}

and by the previous question:

Ψ ≝ Φ^{-1}: \begin{cases} Mon(!A, D_B) &⟶ Cont(D_A,D_B)\\ f &⟼ \bigcup\limits_{u' ⊆_f \bullet} f(u') \end{cases}

$\bigcup\limits_{u’ ⊆_f \bullet} f(u’)$ is indeed

  • well-defined, as $\lbrace f(u’) \; \mid \; u’ ⊆_f u \rbrace$ is a filter for every clique $u$, since $f$ is monotonic

  • continuous: if $D$ is a directed set of $D_A$:

    \begin{align*} \bigcup\limits_{u' ⊆_f \bigvee D} f(u') & = \bigcup\limits_{∃ \, u ∈ D; \, u' ⊆_f u} f(u') &&\text{(as } \bigvee D = \bigcup\limits_{u ∈ D} u \text{ and finite cliques are compact element)}\\ & = \bigcup\limits_{u ∈ D} \bigcup\limits_{u' ⊆_f u} f(u') \\ & = \bigvee\limits_{u ∈ D} \bigcup\limits_{u' ⊆_f u} f(u') \end{align*}

$Ψ(g)$ is monotone:

  • $x ≤ y$ then $ℱ_x ⊆ ℱ_y$, hence

    \bigvee g (ℱ_x) ≤ \bigvee g(ℱ_y)

    because $\bigvee g (ℱ_y)$ is an upper bound of $g(ℱ_y)$, hence of $g(ℱ_x)$ and $\bigvee g (ℱ_x)$ is the least upper bound of $g(ℱ_x)$

$Ψ(g)$ is continuous:

  • By monotonicity:

    \underbrace{\bigvee Ψ(g)(ℱ)}_{\bigvee \lbrace g(u) \; \mid \; ∃x ∈ ℱ; u ≤ x \rbrace} ≤ Ψ(g)\Big(\bigvee ℱ\Big)


    Ψ(g)\Big(\bigvee ℱ\Big) = \bigvee g(ℱ_{\bigvee ℱ}) \overset{?}{≤} \bigvee \lbrace g(u) \; \mid \; ∃x ∈ ℱ; u ≤ x \rbrace

    We reduced the problem to the question: for every element $v ∈ ℱ_{\bigvee ℱ}$, every finite clique $v ⊆ \bigvee ℱ$, does there exist an element $x ∈ ℱ$ such that $v ⊆ x$?

    For every filter $ℱ$:

    v ≤ \bigvee ℱ ⟹ ∃ x ∈ ℱ; v ≤ x


    v ≤ \bigvee ℱ = \bigcup\limits_{x ∈ ℱ} x ⟹ ∀ a_i ∈ v ≝ \lbrace a_i \rbrace_{1 ≤ i ≤ n}, \; ∃ x_i ∈ ℱ; \; a_i ∈ x_i\\ v ⊆ \bigvee_{1 ≤ i ≤ n} x_i \quad\text{ (filter)}


Q4. For every continuous function $f: D_A → D_B$, one defines the set

\Tr(f) ⊆ \, !A × B

of elements $(u,b)$ satisfying the two properties below:

  • $b ∈ f(u)$
  • $b ∉ f(v)$ for every clique $v ∈ D_A$ stricly included in $u$

Show that, for all clique $u$ of $A$:

f(u) = \underbrace{\big\lbrace b ∈ B \; \mid \; ∃ \, v ∈ \, !A; \; v ≤_A u \text{ and } (v,b) ∈ \Tr(f)\big\rbrace}_{\text{denoted by } U}
\begin{align*} f(u) & = f \bigg(\bigcup\limits_{v ⊆_f u} v\bigg) \\ & = \bigcup\limits_{v \, ⊆_f u} f(v) &&\text{ (continuity)}\\ & = \big\lbrace b ∈ B \; \mid \; ∃ \, v ∈ \, !A; \; v ≤_A u \text{ and } b ∈ f(v)\big\rbrace \end{align*}

So clearly $U ⊆ f(u)$, and conversely: $f(u) ⊆ U$:

  • indeed, for all $b ∈ f(u)$: as $\lbrace v’ ∈ \, !A \; \mid \; v’ ≤_A u \text{ and } b ∈ f(v’) \rbrace ≠ ∅$, by setting

    v \, ≝ \, \bigcap\limits_{v' ∈ !A; \; v' ≤_A u \text{ and } b ∈ f(v')} v'

    $v$ is still a finite clique included in $u$ containing $b$, and by minimality of $v$: $(v, b) ∈ \Tr(f)$, hence $b ∈ U$

Therefore: $f(u) = U$.


In order to understand the meaning of “stability”, it is good to consider the special case of a stable function

f: D_A ⟶ D_1 = \underbrace{\lbrace ∅ ≤ \lbrace \ast \rbrace}_{= Σ \text{ (Sierpinski)}}\rbrace

Every monotone function $f: D_A ⟶ D_1$ is entirely described by the inverse image of $⊤$:

f^{-1}(⊤) ⊆ D_A

which is upper closed, because $f$ is monotone.

When the function is continuous, $f^{-1}(⊤)$ is entirely described by $\Tr \, f$

\Tr f = \lbrace (u_i, \ast) \; \mid \; \ast \text{ is the unique element of } 1 = \lbrace\ast\rbrace \text{ and } f(u_i) = ⊤ \text{ and } ∀v \text{ strictly included in } u_i, \; f(v) = ⊥\rbrace

NB: the $u_i$’s are finite elements

A continuous function

f: D_A ⟶ Σ = D_1

is stable precisely when

∀i, j, \quad i ≠ j ⟹ u_i \# u_j

where $u # v$ means that there does not exist any $w$ such that $u, v ≤ w$

In other words, the $u_i$’s are pairwise incompatible.

cf picture “parallel or”: not stable (it cannot be implemented by a $λ$-term: Béry’s model was a proof of that)

NB: Syntax ≃ Existential (there exists a $λ$-term that implements…) VS Model ≃ Universal (for all $λ$-term, it does not implement…)

Every $λ$-term can be interpreted by a stable function: for any computation, there exists a minimal amount of information that led to this output. Stability: you also have uniqueness of this minimal piece of information (look at parallel or: if $True$ is returned, you don’t know which branch ($⊤⊥$ or $⊥⊤$) triggered it)

(u,b) ∈ \Tr f ⟺ (∀ v ↑ u, \quad u ≤ v ⟺ b ∈ f(v))

$⟹$: $(u,b) ∈ \Tr f$. For $v ↑ u$,

  • If $u ≤ v$, then $b ∈ f(u) ⊆ f(v)$ as $f$ is monotone
  • If $b ∈ f(v)$: $u ≤ v$ because $u ↑ v$ and $f$ is stable: $b ∈ f(u) ∩ f(v) = f(u ∩ v)$ hence $u ∩ v = u$ and $u ≤ v$

$⟸$: Suppose ∀ v ↑ u, \quad u ≤ v ⟺ b ∈ f(v)

For all $v$ included in $u$ compatible with $u$ ($v ↑ u$),

b ∈ f(v) ⟹ u ≤ v \text{, and } u = v

hence $(u,b) ∈ \Tr f$


$f: D_A ⟶ D_B$ linear ⟺ every element in the trace is of the form $(\lbrace a\rbrace, b)$

Leave a comment