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