Lecture 13: Scott semantics
Lecture 13
Preorders and linear functions (Scott semantics)
\[PoLR_!(S, T) \overset{Fun}{⟶} \underbrace{PoC(S, T)}_{\text{Scott cont. function } ℐ(S) → ℐ(T)}\\ PoC(S, T) \overset{Tr}{⟶} PoLR_!(S, T)\]defines an iso of categories
\[id ∈ PoLR_!(S, S) = PoLR(!S, S)\\ id = der_S\] \[s ∈ PoLR_!(S, T) = PoLR(!S, T)\\ t ∈ PoLR_!(T, U) = PoLR(!T, U)\\ t \circ s ∈ PoLR_!(S, U)\\ !S \overset{dig_S}{⟶} !!S \overset{!s}{⟶} !T \overset{t}{⟶} U\] \[Fun(t \circ s) = Fun(t) \circ Fun(s)\]Remember that
\[Fun(s)(u) = s u^!\\ u ∈ ℐ(S) \qquad u^! = 𝒫_{fin}(u) ∈ ℐ(!S)\] \[Fun(t \circ s)(u) = (t \circ s) u^! = (t \, !s \, dig) \, u^! \\ = t \, !s \, (dig \, u^!) = t \, !s \, u^{!!}\\ = t \, (s \, u^!)^! = Fun(t)(Fun(s)(u))\]We can consider
\[Fun: \begin{cases} PoLR_! &⟶ PoC \\ S &⟼ S\\ t &⟼ Fun(t)\\ \end{cases}\] \[Tr: \begin{cases} PoC &⟶ PoLR_! \\ S &⟼ S\\ f &⟼ Tr(f)\\ \end{cases}\]are two functors which define an iso of categories.
Fixpoints
Fixpoints of functions
Any continuous function has a least fixpoint:
\[s ∈ PoLR_!(S, S)\\ f = Fun(s): \underbrace{ℐ(S)}_{\ni ∅} ⟶ ℐ(S)\] \[∅ ⊆ f(∅) ⊆ f^2(∅) ⊆ ⋯ ⊆ f^n(∅) ⊆ f^{n+1}(∅) ⊆ ⋯\] \[u = \bigcup\limits_{n=0}^∞ f^n(∅)\\ f(u) = \bigcup\limits_{n=0}^∞ f^{n+1}(∅) = u\]$u$ is the least fixpoint of $f$.
\[𝒴: \begin{cases} ℐ(S ⇒ S) &⟶ ℐ(S) \\ s &⟼ \bigcup\limits_{n=0}^∞ Fun(s)^n(∅) \end{cases}\]We ask for
\[Y ∈ ℐ((S ⇒ S) ⇒ S)\]such that $𝒴 = Fun(Y)$
Define
\[F ∈ PoC((S ⇒ S) ⇒ S, (S ⇒ S) ⇒ S)\\ 𝒵 ∈ PoLR_!((S ⇒ S) ⇒ S, (S ⇒ S) ⇒ S)\]such that $Y$ will be the least fixpoint of $𝒵$.
\[Y = \bigcup\limits_{n=0}^∞ 𝒵^n(∅)\] \["Y(t) = t(Y(t))\\ λY. (λt. t(Y(t)))"\] \[𝒵_0: ((S ⇒ S) ⇒ S) \& (S ⇒ S) \overset{⟨π_1, π_2, π_2⟩}{⟶} ((S ⇒ S) ⇒ S) \& (S ⇒ S) \& (S ⇒ S)\\ \overset{Ev \& id}{⟶} S \& (S ⇒ S) ⟶ (S ⇒ S) \& S \overset{Ev}{⟶} S\]$𝒵$ is fully characterized by
\[Fun(Fun(𝒵(Y)))(t) = Fun(t)(Fun(Y)(t))\]Let $F = Fun(𝒵)$
Let
\[Y_0 = \bigcup\limits_{n=0}^∞ F^n(∅)\]be the least fixpoint of $F$ ($F(Y_0) = Y_0$).
Let $s ∈ PoLR_!(S, S) = ℐ(S ⇒ S)$.
\[Fun(Y_0)(s) = Fun(F(Y_0))(s) = Fun(s)(Fun(Y_0)(s))\](we are strongly relying on the cartesian closure of the category)
Exercise: Prove that
\[Fun(Y_0)(s) = \bigcup\limits_{n=0}^∞ Fun(s)^n(∅)\]actually:
\[Fun(F^n(∅))(s) = Fun(s)^n(∅)\]Fixpoints of types
- $PO_⊆$:
-
partially ordered class of preorders, ordered by:
\[S ⊆ T \quad \text{ iff } \quad \vert S \vert ⊆ \vert T \vert \text{ and } ∀ a, a' ∈ \vert S \vert, a ≤_S a' ⟺ a ≤_T a'\]
Any sequence
\[S_0 ⊆ S_1 ⊆ ⋯ ⊆ S_n ⊆ S_{n+1} ⊆ ⋯\]has a least upper bound in $PO_⊆$
\[S = \bigcup\limits_{n=0}^∞ S_n\]given by
\[\vert S \vert = \bigcup\limits_{n=0}^∞ \vert S_n \vert\\ a ≤_S a' \quad \text{ iff } \quad ∃ n; a ≤_{S_n} a'\]NB (Model Theory): the theory of partial orders is clearly $∀∃$-axiomatizable, so it is inductive.
\[Φ = PO_⊆ ⟶ PO_⊆\]is a unary variable type if $Φ$ is monotonic, i.e.
\[S ⊆ T ⟹ Φ(S) ⊆ Φ(T)\]and continuous, i.e.
\[S_0 ⊆ S_1 ⊆ ⋯ ⟹ Φ(\bigcup\limits_{n=0}^∞ S_n) = \bigcup\limits_{n=0}^∞ Φ(S_n)\]A $n$-ary variable type is a
\[Φ: PO_⊆^n ⟶ PO_⊆\]st
\[∀ i, ∀ S_1, …, S_{i-1}, S_{i+1}, …, S_n ∈ PO, \\ S ⟼ Φ(S_1, …, S_{i-1}, S, S_{i+1}, …, S_n) \text{ is a unary variable type}\]If $Φ: PO_⊆ ⟶ PO_⊆$ is a variable type, then
\[Φ(\underbrace{\bigcup\limits_{n=0}^∞ Φ(∅)}_{Rec(Φ)}) = \bigcup\limits_{n=0}^∞ Φ(∅)\]$Φ: PO_⊆^{n+1} ⟶ PO_⊆$ variable type, $\vec S ∈ PO^n$,
\[Φ_{\vec S}: \begin{cases} PO_⊆ &⟶ PO_⊆ \\ S &⟼ Φ(\vec S, S) \end{cases}\]unary variable type
\[Rec(Φ): \begin{cases} PO_⊆^n &⟶ PO_⊆ \\ \vec S &⟼ Rec(Φ_{\vec S}) \end{cases}\] \[Φ(\vec S, Rec(Φ)(\vec S)) = Rec(Φ(\vec S))\]Fact: $Rec(Φ)$ is itself a variable type. All constructions of LL are variable types.
Are variable types:
- \[\begin{cases} PO_⊆ &⟶ PO_⊆ \\ S &⟼ S^⊥ \end{cases}\]
- \[\begin{cases} PO_⊆^2 &⟶ PO_⊆ \\ (S_1, S_2) &⟼ S_1 ⊗ S_2 \end{cases}\]
- \[\begin{cases} PO_⊆ &⟶ PO_⊆ \\ S &⟼ !S \end{cases}\]
Variable types are closed under composition.
If
\[Φ: PO_⊆^n ⟶ PO_⊆\] \[Ψ_i: PO_⊆^k ⟶ PO_⊆\]then
\[\begin{cases} PO_⊆^k &⟶ PO_⊆ \\ \vec T &⟼ Φ(Ψ_1(\vec T), …, Ψ_n(\vec T)) \end{cases}\]is a variable type.
Example:
\[Φ(S) = 1 ⊕ !S\]Let $L = Rec(Φ)$
\[\vert L \vert = \bigcup\limits_{n=0}^∞ E_n\]where
- $E_0 = ∅$
- \[E_{n+1} = \lbrace \underbrace{(1, \ast)}_{ζ}\rbrace ∪ \lbrace \underbrace{(2, u^0)}_{\overline{suc}(u^0)} \; \mid \; u^0 ∈ 𝒫_{fin}(E_n)\rbrace\]
⟶ Elements of $L$ are “finite comb trees”
\[\overline 0 ∈ PoLR_!(\underbrace{⊤}_{\text{terminal object of } PoLR \text{ and } PoLR_!: \text{ the empty preorder}}, L)\\ Suc ∈ PoLR_!(L, L)\] \[!⊤ \overset{m^0}{⟶} 1 \overset{in_1}{⟶} \underbrace{1 ⊕ !L}_{=L}\] \[\overline 0 = \lbrace (∅, ζ)\rbrace\] \[Suc: \; !L \overset{m_2}{⟶} 1 ⊕ !L = L\\ Suc = \lbrace (u^0, \overline{suc}(u^0)) \; \mid \; u^0 ∈ \vert !L \vert \rbrace\] \[\overline{if} ∈ PoLR(L ⊗ !S ⊗ !(!L ⊸ S), S)\\ if(M, N, x. P)\] \[\overline{if}: \underbrace{(1 ⊕ !L) ⊗ !S ⊗ !(!L ⊸ S)}_{≃ \; (!S ⊗ !(!L ⊸ S)) ⊕ (!L ⊗ !S ⊗ !(!L ⊸ S))} ⟶ S\]
Case definition:
\[\overline{if}_0: !S ⊗ !(!L ⊸ S) \overset{!S ⊗ w}{⟶} !S ⊗ 1 \; ≃ \; !S \overset{der_S}{⟶} S\] \[\overline{if}_{suc}: \; !L ⊗ !S ⊗ !(!L ⊸ S) \overset{id ⊗ w ⊗ id}{⟶} !L ⊗ 1 ⊗ !(!L ⊸ S) \\ \; ≃ \; !L ⊗ !(!L ⊸ S) \overset{id ⊗ der}{⟶} !L ⊗ (!L ⊸ S) \overset{σ}{⟶} !(!L ⊸ S) ⊗ !L \overset{ev}{ ⟶} S\]LPCF
\[A, B, … \; ≝ \; ι \; \mid \; A → B\] \[M \; ≝ \; x \; \mid \; \underline 0 \; \mid \; \underline {suc} (M) \; \mid \; if (M, N, x. P)\\ \; \mid \; (M)N \; \mid \; λx^A. M \; \mid \; fix \, x^A. M\] \[Γ = (x_1: A_1, …, x_n: A_n)\] \[\cfrac{}{x_1: A_1, …, x_n: A_n ⊢ x_i: A_i}\] \[\cfrac{}{Γ ⊢ \underline 0: ι}\] \[\cfrac{Γ ⊢ M: ι}{Γ ⊢ \underline {suc }(M): ι}\] \[\cfrac{Γ ⊢ M: ι \qquad Γ ⊢ N: A \qquad Γ, x: ι ⊢ P: A}{Γ ⊢ if(M, N, x.P): A}\]$λ$-calculus (app. $λ$)
\[\cfrac{Γ, x:A ⊢ M:A}{Γ ⊢ fix \; x^A. M:A}\]$β$: general reduction
$β_{wh}$: weak head reduction
Interpretation in the model PoLR
\[A \leadsto [A] \text{ a preorder}\\ [ι] = L \\ [A → B] = [A] ⇒ [B] = ![A] ⊸ [B]\] \[Γ = (x_1: A_1, … , x_n: A_n)\]$![Γ]$ is a notation for
\[![A_1] ⊗ ⋯ ⊗ ![A_n] \quad ≃ \quad !([A_1] \& ⋯ \& [A_n])\]to $Γ ⊢ M:A$ we associate
\[[M]_Γ ∈ PoLR(![Γ], [A])\]NB: $[M]_Γ$ can be considered as a Scott-continuous function
\[ℐ([A_1]) × ⋯ × ℐ([A_n]) ⟶ ℐ([A])\]$[M]_Γ$ defined by induction on $M$:
-
$M = x_i, A = A_i$:
\[[M]_Γ: \quad ![A_1] ⊗ ⋯ ⊗ ![A_i] ⊗ ⋯ ⊗ ![A_n] \\ \overset{w ⊗ ⋯ ⊗ w ⊗ der ⊗ w ⊗ ⋯ ⊗ w}{⟶} 1 ⊗ ⋯ ⊗ 1 ⊗ [A_i] ⊗ 1 ⊗ ⋯ ⊗ 1 ≃ [A_i]\] -
$M = \underline {0}, A = ι$
\[[M]_Γ: \quad ![A_1] ⊗ ⋯ ⊗ ![A_n] ⟶ 1 ⊗ ⋯ ⊗ 1 \; ≃\; ! ⊤ \overset{\overline{0}}{⟶} L\] -
$M = suc(N)$
\[[M]_Γ: \quad ![Γ] \overset{[N]_Γ^!}{⟶} !L \overset{Suc}{⟶} L\]concretely:
\[[M]_Γ \; ≝ \; \lbrace (u^1, …, u^n, \overline{suc}(u^0)) \; \mid \; ∀ a ∈ u^0, \; (u^1, …, u^n, a) ∈ [N]_Γ\rbrace\] -
$M = if(N, P, x. Q)$
\[Γ ⊢ N: ι \qquad Γ ⊢ P: A \qquad Γ, x:ι ⊢ Q: A\]By IH:
\[[N]_Γ: ![Γ] ⟶ L \qquad [P]_Γ: !Γ ⟶ [A] \qquad [Q]_{Γ, x: ι}: ![Γ] ⊗ ![L] ⟶ [A]\] \[\overline{if}: L ⊗ ![A] ⊗ !(!L ⊸ [A]) ⟶ [A]\] \[![Γ] \overset{c}{ ⟶ } ![Γ] ⊗ ![Γ] ⊗ ![Γ] \overset{[N]_Γ ⊗ [P]_Γ^! ⊗ (cur([Q]_{Γ, x:ι}))^!}{⟶} L ⊗ ![A] ⊗ !(!L ⊸ [A]) \overset{\overline{if}}{⟶} [A]\] -
$M = (N)P$
\[Γ ⊢ N: B → A \qquad Γ ⊢ P:B\] \[[N]_Γ: \; ![Γ] ⟶ (![B] ⊸ [A])\\ [P]_Γ: \; ![Γ] ⟶ [B]\\\] \[![Γ] \overset{c}{⟶} ![Γ] ⊗ ![Γ] \overset{[N]_Γ ⊗ [P]_Γ^!}{⟶} (![B] ⊸ [A]) ⊗ ![B] \overset{ev}{⟶} [A]\] -
$M = λx^B.N, \; A = B → C $
\[Γ, x: B ⊢ N:C\\ [N]_{Γ, x:B}: !Γ ⊗ ![B] ⟶ [C]\] \[[M]_Γ = cur([N]_{Γ, x:B})\] -
$M = fix\; x^A. N$
\[Γ, x: A ⊢ N: A\] \[Y_0: !(![A] ⊸ [A]) ⟶ [A]\] \[[N]_{Γ, x:A}: \; ![Γ] ⊗ ![A] ⟶ [A]\] \[cur([N]_{Γ, x:A}): ![Γ] ⟶ (![A] ⊸ [A])\] \[[M]_Γ: \quad ![Γ] \overset{(cur([N]_{Γ,x:A}))^!}{⟶} !(![A] ⊸ [A]) \overset{Y_0}{⟶} [A]\]
Th: if $Γ ⊢ M:A$ and $M \; β \; M’$, then $[M]_Γ = [M’]_Γ$
Lemma (Substitution lemma): if $Γ, x:A ⊢ M:B$ and $Γ ⊢ N:A$, then
\[[M[N/x]]: \quad ![Γ] \overset{c}{⟶} ![Γ] ⊗ ![Γ] \overset{id ⊗ [N]_Γ^!}{⟶} ![Γ] ⊗ ![A] \overset{[Γ]_{Γ, x:A}}{⟶} [B]\]
Intersection typing system
\[Φ \; ≝ \; (x_1: u^1: A_1, …, x_n: u^n: A_n)\]Prop: If $Γ ⊢ M:A$, $Γ = (x_1: A_1, …, x_n: A_n)$ and
\[u^i ∈ \vert ! [A_i] \vert \quad i = 1, …, n \text{ and } a ∈ \vert [A] \vert\]then \((u^1, …, u^n, a) ∈ [M]_Γ\)
iff \(x_1: u^1: A_1, …, x_n: u^n: A_n ⊢ M: a: A\) is derivable in the following “semantic typing system” (intersection typing system):
semantic typing context
\[u^i ∈ \vert ! [A_i] \vert = 𝒫_{fin}(\vert [A_i] \vert)\]\(\underline Φ = (x_1: A_1, …, x_n: A_n)\) underlying typing context
\[\cfrac{∃ a^i ∈ u^i \qquad a ≤_{A_i} a_i}{x_1: u^1: A_1, …, x_n: u^n: A_n ⊢ x_i: a: A_i}\] \[\cfrac{}{\underline Φ ⊢ \underline 0: ι}\] \[\cfrac{Φ ⊢ M: a: ι \qquad ∀ a ∈ u^0 ∈ \vert !L \vert \qquad \underline Φ ⊢ M: ι}{\underline Φ ⊢ \underline {suc}(M): \overline {suc}(u^0):ι}\]in particular:
\[\cfrac{\underline Φ ⊢ M: ι}{\underline Φ ⊢ \underline {suc}(M): \overline {suc}(Φ): ι}\] \[\cfrac{Φ ⊢ M: ζ: ι \qquad Φ ⊢ N: a: A \qquad \underline Φ, x: ι ⊢ P: A}{Φ ⊢ if (M, N, x.P): a: A}\] \[\cfrac{Φ ⊢ M: \overline {suc} (u^0): ι \qquad \underline Φ ⊢ N: A \qquad Φ, x: u^0: ι ⊢ P: a: A}{Φ ⊢ if (M, N, x.P): a: A}\] \[\cfrac{Φ ⊢ M: (u^0, b): A → B \qquad \underline Φ ⊢ N: A \qquad Φ ⊢ N: a: A \qquad ∀ a ∈ u^0}{Φ ⊢ (M)N: b: B}\] \[\cfrac{Φ, x:u^0:A ⊢ M: b: B}{Φ ⊢ λx^A. M: (u^0, b): A → B}\] \[\cfrac{Φ, x:u^0:A ⊢ M: a: A \qquad Φ ⊢ fix \; x^A. M: a': A \quad ∀ a' ∈ u^0}{Φ ⊢ fix \; x^A. M: a: A}\]Adequacy
Goal: if $⊢ M: ζ: ι$, then $M \; β_{wh}^\ast \; \underline 0$
⟶ Adequacy
Technique: reducibility
Given $A$ and $a ∈ \vert [A] \vert$, we define $\vert a \vert^A$, a set of terms $M$ st $⊢ M: A$ (and for $u^0 ∈ \vert ! [A] \vert$, \(\vert u^0 \vert^A_! = \bigcap_{a ∈ u^0} \vert a \vert^A\))
The def is by induction on the size of $a$ (which is a finite term)
$A = ι$ and $a = ζ$
\[\vert ζ \vert^ι = \lbrace ⊢ M: ι \; \mid \; M \; β^\ast_{wh} \underline 0\rbrace\] \[a = \overline {suc}(u^0)\\ \vert a \vert^ι = \lbrace ⊢ M: ι \; \mid \; M \; β^\ast_{wh} \; \underline {suc}(N) \text{ with } N ∈ \vert u^0\vert^ι_! = \bigcap_{a ∈ u^0} \vert a \vert^ι\rbrace\] \[\vert (u^0, b) \vert^{A → B} = \lbrace ⊢ M: A → B \; \mid \; ∀ N ∈ \vert u^0\vert^ι_!, \; (M)N ∈ \vert b \vert^B\rbrace\]Lemma 1: if $a ≤_{[A]} a’$, then \(\vert a' \vert^A ⊆ \vert a \vert^A\)
Proof:
$A=ι$:
if $a ≤_L a’$, there are 2 cases:
- $a=a’= ζ$: trivial
-
$a = \overline{suc}(u^0), \; a’ = \overline{suc}(u^1)$, $M ∈ \vert a \vert^A$ (“$M$ satisifies $a$”)
\[u^0 ≤_{!L} u^1 \qquad (⟺ ∀ b ∈ u^0, ∃ b' ∈ u^1; \; b ≤_L b')\]Let $M ∈ \vert a’ \vert^ι$, that is:
\[M \; β^\ast_{wh} \; \overline{suc} (N)\]where
\[N ∈ \vert u^1 \vert_!^ι = \bigcap_{b' ∈ u^1} \vert b' \vert^ι \qquad ⟺ ∀ b' ∈ u^1, \; N ∈ \vert b' \vert^ι\]We want: \(N ∈ \bigcap_{b ∈ u^0} \vert b \vert^ι\)
that is:
\[∀ b ∈ u^0, \; N ∈ \vert b \vert^ι\]Let $b ∈ u^0$. There is $b’ ∈ u^1$ st $b ≤_L b’$. And we have:
\[N ∈ \vert b' \vert^ι \overset{\text{by IH}}{⊆} \vert b \vert^ι\]
$A = B → C$
$a = (v^0, c), a’ = (v^1, c’)$
$a ≤_{[A]} a’$ means
\[c ≤_{[C]} c' \quad \text{ and } \quad v^1 ≤_{![B]} v^0\]We want:
\[\vert (v^1, c') \vert^{B → C} ⊆ \vert (v^0, c) \vert^{B → C}\]Let $M ∈ \vert (v^1, c’) \vert^{B → C}$. We want: $M ∈ \vert (v^0, c) \vert^{B → C}$.
Let \(N ∈ \vert v^0 \vert^B_! ⊆ \vert v^1 \vert^B_!\) because $v^1 ≤_{![B]} v^0$.
And by IH, we want:
\[N ∈ \bigcap_{b ∈ v^1} \vert b \vert^B\]Let $b ∈ v^1$, we need: $N ∈ \vert b \vert^B$.
But $v^1 ≤_{![B]} v^0$, so let $b’ ∈ v^0$ st \(b ≤_B b'\)
So by IH:
\[\vert b' \vert^ι ⊆ \vert b \vert^ι\]and we have assumed
\[N ∈ \vert v^0 \vert_!^B ⊆ \vert b' \vert^B\]since $b’ ∈ v^0$, so $N ∈ \vert b \vert^ι$.
So $N ∈ \vert v^1 \vert^B_!$. But $M ∈ \vert (v^1, c’) \vert^{B → C}$, so
\[(M)N ∈ \vert c' \vert^C\]But
\[c ≤_C c'\]so by IH:
\[\vert c' \vert^C ⊆ \vert c \vert^C\]so
\[(M)N ∈ \vert c \vert^C\]Lemma 2: If $⊢ M: A$, $⊢ M’: A$, $M \; β_{wh} \; M’$ and $M’ ∈ \vert a \vert^A$, then $M ∈ \vert a \vert^A$.
Proof by induction on the size of $a$.
Main Statement: Interpretation Lemma/Logical relation lemma
If
\[x_1: u^1: A_1, …, x_n: u^n: A_n ⊢ M: a: A\]Then: for all $N_1, …, N_n$ st \(∀i, \qquad N_i ∈ \vert u^i \vert^{A_i}\) one has \(M[N_1/x_1, …, N_n/x_n] ∈ \vert a \vert^A\)
Corollaries: if $⊢ M: a: A$, then $M ∈ \vert a \vert^A$.
In particular, if $⊢ M: ζ: ι$, then $M ∈ \vert ζ \vert^ι ⟺ M \; β_{wh}^\ast \; \underline 0$
Leave a comment