§ Crash course on DCPO: formalizing lambda calculus


In lambda calculus, we often see functions of the form λxx(x)\lambda x \rightarrow x(x). We would like a way to associate a "natural" mathematical object to such a function. The most obvious choice for lambda calculus is to try to create a set VV of values which contains its own function space: (VV)V(V \rightarrow V) \subseteq V. This seems to ask for a set whose cardinality is such that VV=V|V|^|V| = |V|, which is only possible if V=1|V| = 1, ie VV is the trivial set {}\{ * \}. However, we know that lambda calculus has at least two types of functions: functions that terminate and those that don't terminate. Hence the trivial set is not a valid solution.
However, there is a way out. The crucial insight is one that I shall explain by analogy:

RQ=(20)0=200=20=R|\mathbb R^\mathbb Q| = (2^{\aleph_0})^{\aleph_0} = 2^{\aleph_0 \cdot \aleph_0} = 2^\aleph_0 = |R|


§ Difference between DCPO theory and Domain theory





§ Computation as fixpoints of continuous functions


§ Posets, (least) upper bounds



§ Directed Sets



§ Directed Complete Partial Order ( DCPO)



§ Monotonicity and Continuity



§ Monotone map



f:2N2Nf(S){SSisfiniteSU{0}S is infinite f: 2^{\mathbb N} \rightarrow 2^{\mathbb N} f(S) \equiv \begin{cases} S & \text{$S$} is finite \\ S U \{ 0 \} &\text{$S$ is infinite} \end{cases}

This does not preserve least-upper-bounds. Consider the sequence of elements:
A1={1},A2={1,2},A3={1,2,3},,An={1,2,3,,n} A_1 = \{ 1\}, A_2 = \{1, 2\}, A_3 = \{1, 2, 3\}, \dots, A_n = \{1, 2, 3, \dots, n \}

The union of all AiA_i is N\mathbb N. Each of these sets is finite. Hence f({1})={1}f(\{1 \}) = \{1 \}, f({1,2})={1,2}f(\{1, 2 \}) = \{1, 2\} and so on. Therefore:
f(Ai)=f(N)=N{0}f(Ai)=Ai=N f(\sqcup A_i) = f(\mathbb N) = \mathbb N \cup \{ 0 \}\\ \sqcup f(A_i) = \sqcup A_i = \mathbb N

§ Continuous function



§ Fixpoints of continuous functions


The least fixed point of a continous function f:DDf: D \rightarrow D is:
FIX(f)lub({fn():n0})\texttt{FIX}(f) \equiv \texttt{lub}(\{ f^n(\bot) : n \geq 0 \})

§ \leq as implication


We can think of bab \leq a as b    ab \implies a. That is, bb has more information than aa, and hence implies aa.

§ References