Lecture 16: Sequential Algorithms
Lecture 16
- Sequential ⟹ Stable
- Cds \(M = (\underbrace{C}_{\text{cells}}, \underbrace{V}_{\text{values}}, \underbrace{E}_{⊆ C × V \text{ = events}}, \underbrace{⊢}_{\text{ enabling relation, of the form } ⊢ c \text{ or } (d, v) ⊢ c})\)
Revisit the definition of $M ⇒ M’$
-
Good for straightforward cartesian closure: $M’’ = M ⇒ M’$
-
Good for straightforward execution: Forest/programs
-
Good for straightforward composition: \((\underline{function}, \underline{comp. strat})\)
Recall that a proof is a sequence
\[c_n v_n c_{n-1} ⋯ c_1 v_1 c_0\]st
\[⊢c_n \qquad \text{ and } \qquad (c_i, v_i) ⊢ c_{i-1} \quad ∀ i > 0\]- Condition 1: $\not ∃$ an infinite proof
-
Condition 2 (Stability): if \(c_n v_n c_{n-1} ⋯ c_1 v_1 c_0 = c\)
\[d_m w_m ⋯ d_1 w_1 d_0 = c\]are two proofs of the same cell, then the longest common prefix is either $∅$ or ends with a cell.
(cf. picture)
If $M$ is a cds, a configuration of $M$ is a set $x ⊆ E$ st (determinism):
\[(c, v_1), (c, v_2) ∈ x ⟹ v_1 = v_2\]On top of that:
\[∀ (c, v) ∈ x, \text{ either } ⊢ c \text{ or } ∃ (d, w) ∈ x; \; (d, w) ⊢ c\]Notations:
- $(c, v) ∈ x$ iff $c ∈ F(x)$ (filled)
- If $c ∉ F(x)$ and $(d, w) ∈ x$ and $(d, w) ⊢ c ⟺ c ∈ A(x)$ (accessible)
- $c ∈ E(x) ⟺ c ∈ A(x) \text{ or } c ∈ F(x)$ (enabled)
(cf. picture)
The stability condition allows us to represent configurations as forests (the $(d, w)$ is unique, in the determinism property).
Example: $Σ = \lbrace f^2, g^1, a^0\rbrace$. cf picture for $f(g(Ω), a)$
We write
\[D(M) = \lbrace \text{configurations of } M\rbrace, ⊆\]Prop: for every cds $M$, $D(M)$ satisfies:
\[∀x, y. x ↑ y ⟹ x ∩ y \text{ is a configuration that is the glb of } x \text{ and } y\]
Proof: $x, y ⊆ z ∈ D(M)$
-
$c ∈ F(x ∩ y) ⟹ c ∈ F(x)$ thus if $(c, v_1), (c, v_2) ∈ F(x ∩ y)$, then $v_1 = v_2$
-
if $c ∈ F(x ∩ y)$, then there exists $(d, w) ∈ x ∩ y$ by uniqueness (stability) such that $(d, w) ⊢ c$
Let $M, M’$ be two cds and $f: D(M) ⟶ D(M’)$ be Scott-continuous.
$f$ is called sequential at $x$ if
\[∀c', (c' ∈ A(f(x)) \text{ and } ∃ z > x; c' ∈ F(f(z))) \\ ⟹ ∃ c ∈ A (x) \text{ st } ∀ y > x; (c' ∈ F(f(y)) ⟹ c ∈ F(y))\]Th: Any sequential algorithm computes a sequential function
Prop: Any sequential function is stable.
\[\text{ Sequential } ⊊ \text{ Stable } ⊊ \text{ Continuous }\]Proof:
By contradiction, suppose that
\[f(x ∩ y) ⊊ f(x) ∩ f(y)\]3 different ways to define sequential algorithms (78)
-
As configurations of $M ⇒ M’ = (C’’, V’’, E’’, ⊢’’)$
\[C'' = D^{fin}(M) × C'\\ V'' = \lbrace valof \; c \; \mid \; c ∈ C\rbrace ∪ \lbrace output \; v' \; \mid \; v' ∈ V' \rbrace\\ E''\; ≝ \; \lbrace (xc', output \; v') \; \mid \; (c', v') ∈ C' × V' \rbrace ∪ \lbrace (xc', valof \; c) \; \mid \; c ∈ A(x) \rbrace\\ ⊢'' ∅ c' \quad \text{ iff } \quad ⊢' c'\\ (xc', output \; v') ⊢'' xd'\quad \text{ iff }\quad c', v' ⊢' d'\\ (xc', valof \; c) ⊢'' (x ∪ \lbrace (c,v) \rbrace) c' \quad \text{ iff } \quad (c, v) ∈ E\]
A dive into the corresponding category:
- Objects: Cds
-
SeqAlg whose morphisms are given by
\[SeqAlg(M, M') = D(M ⇒ M')\]
Look at the cells, they have the form:
\[x c'.1\\ x c''.2 \qquad \text{ with } x ∈ D(M)\]Similarly, we have to check that
\[\cfrac{D((M × M') ⇒ M'')}{D(M ⇒ (M' ⇒ M''))}\]Cells in both of them: resp. of the form $(x,x’)c’’$ and $x(x’c’’)$ (recall that $D(M × M’) ≅ D(M) × D(M’)$)
Categorical composition
Sequential algorithms as forests
Consider the quick left or:
\[\underbrace{Bool^2 }_{\text{cells: } ?.1 \text{ and } ?.2}⟶ \underbrace{Bool}_{\text{cells: } ?'}\]cf. pictures
Formally, sequential algorithms as forests are defined via
- a recursive syntax
- typing rules
We only accept forests that are well-typed:
\[(\underbrace{x}_{D^{fin}(M)}, \underbrace{r'}_{\rlap{\text{of the form } q'v' \text{ where } q' \text{ is a proof of } M'}}) ⊢ F\\ (x, r') ⊢ T\\ (x, q') ⊢ U\]and:
\[\cfrac{(x, r') ⊢ T_1 \quad ⋯ \quad (x, r') ⊢ T_n}{(x, r') ⊢ F}\] \[\cfrac{(x, r'c') ⊢ U}{(x, r') ⊢ request \; c' \; U} \quad r'c' \text{ is a proof in } M'\] \[\cfrac{c ∈ A(x) \qquad (x ∪ \lbrace (c, v)\rbrace, q') ⊢ U_i }{(x, q') ⊢ valof \; c \; (⋯ is \, v_i ⊢ U_i ⋯ )}\] \[\cfrac{q' = r'c' (c', v') ⊢ E' \quad (x, q' M) ⊢ F }{(x, q') ⊢ output \; v' \; F}\]Alternatively, we can give a syntax in terms of branches (aka plays):
\[(request \; c' \; (valof \; c \; is \; v)^\ast output \; v')^\ast + request \; c' \; (valof \; c \; is \; v)^\ast valof \; c\]E.g.: $request \; c’ \;\; valof \; c$ is allowed (corresponding to $(∅c’, valof \; c)$)
Composition
\[f: M ⇒ M' \qquad g: M' ⇒ M'' \leadsto g \circ f: M ⇒ M''\\ x: 1 ⇒ M \qquad f: M ⇒ M' \leadsto f(x): M ⇒ M''\\\]where
\[1 = \text{ empty set of cells}\]A generalized point $x$ is of the form:
\[request c_1 ⟶ output \; v_1 ⟶ request \; v_2 ⟶ ⋯\]i.e., in a way: $x ∈ D(M)$
cf. picture
Leave a comment