···22\author{liamoc}
33\taxon{Definition}
44\title{Least upper bounds in the category #{\mathbf{Cpo}}}
55-\p{A [cpo](dt-001D) #{A} is the [\em{least} upper bound](dt-0017) of an [#{\omega}-chain of cpos](dt-004Q) if is both an [upper bound](dt-004R) and if there exists a \em{unique} #{k} for any other [upper bound](dt-004R) #{B} such that the following diagram commutes (i.e. #{h_i = g_i \circ k} for all #{i \in \mathbb{N}}):}
55+\p{A [cpo](dt-001D) #{A} is the [\em{least} upper bound](dt-0017) of an [#{\omega}-chain of cpos](dt-004Q) if is both an [upper bound](dt-004R) and if there exists a \em{unique} #{k} for any other [upper bound](dt-004R) #{B} such that the following diagram commutes (i.e. #{h_i = k \circ g_i} for all #{i \in \mathbb{N}}):}
66\figure{
77\tex{\usepackage{tikz-cd}}{
88\begin{tikzcd}
···11\title{Generalising to #{\textbf{Cpo}^\textbf{R}}}
22\author{liamoc}
33\p{All of our other notions for #{\textbf{Cpo}} naturally generalise to a setting with [retraction pairs](dt-0054) #{\textbf{Cpo}^\textbf{R}}: least elements, [#{\omega}-chains](dt-004Q), [upper bounds](dt-004R), [colimits](dt-004S), [cocontinuous endofunctors](dt-004V) and so on.}
44-\transclude{dt-005C}44+\transclude{dt-005C}
55+\transclude{dt-005D}
66+\transclude{dt-005G}
77+\transclude{dt-005F}
88+\transclude{dt-005E}
+1-1
trees/dt/dt-005B.tree
···11\taxon{Theorem}
22\title{Fixed point theorem for endofunctors on #{\textbf{Cpo}^\textbf{R}}}
33-\p{Every [cocontinuous endofunctor](TODO) #{\mathcal{F}} on #{\mathbf{Cpo}^\textbf{R}} has a least fixed point, given by the [colimit](TODO) of the ascending [#{\omega}-chain](dt-005C):
33+\p{Every [cocontinuous endofunctor](dt-005E) #{\mathcal{F}} on #{\mathbf{Cpo}^\textbf{R}} has a least fixed point, given by the [colimit](dt-005F) of the ascending [#{\omega}-chain](dt-005C):
44\figure{
55\tex{\usepackage{tikz-cd}}{\begin{tikzcd}
66 \mathbf{1} \ar[r,"f_0",->,yshift=0.2em]\ar[r,"g_0"', <-,yshift=-0.2em] &
+10
trees/dt/dt-005D.tree
···11+\import{dt-macros}
22+\taxon{Definition}
33+\author{liamoc}
44+\title{Endofunctors on #{\textbf{Cpo}^\textbf{R}}}
55+\p{An \em{endofunctor} on [the category #{\textbf{Cpo}^\textbf{R}}](dt-0058) is a [functor](dm-000J) #{\textbf{Cpo}^\textbf{R} \rightarrow \textbf{Cpo}^\textbf{R}}, i.e. a mapping #{\mathcal{F}} on [cpos](dt-001D) together with a mapping #{\mathcal{F}} on [retraction pairs](dt-0054), such that:}
66+\ol{
77+\li{If #{(f,g)} is a [retraction pair](dt-0054) #{A \rpair{f}{g} B} then #{\mathcal{F}(f,g)} is a [retraction pair](dt-0054) #{\mathcal{F}(A)\rpair{}{} \mathcal{F}(B)} }
88+\li{#{\mathcal{F}(\mathsf{id}_A : A\rpair{}{} A) = \mathsf{id}_{\mathcal{F}(A)} : \mathcal{F}(A)\rpair{}{} \mathcal{F}(A)}}
99+\li{#{\mathcal{F}(f \circ g) = \mathcal{F}(f) \circ \mathcal{F}(g)}} (where #{\circ} is [composition of retraction pairs](dt-0056))
1010+}
+31
trees/dt/dt-005E.tree
···11+\import{dt-macros}
22+\title{Cocontinuous endofunctors on #{\textbf{Cpo}^\textbf{R}}}
33+\taxon{Definition}
44+\p{An [endofunctor](dt-005D) #{\mathcal{F}} is \em{cocontinuous} iff it preserves [colimits](dt-005F) of [#{\omega}-chains of cpos](dt-005C). That is, given a [chain](dt-005C) where #{A} is a [colimit](dt-005F):
55+\figure{
66+\tex{\usepackage{tikz-cd}}{
77+\begin{tikzcd}
88+&&A\ar[ddll,<-,xshift=-0.8em]\ar[ddll,->,xshift=-0.2em]
99+\ar[ddl,<-,xshift=-0.35em]\ar[ddl,->,xshift=0.1em]
1010+\ar[dd,<-,xshift=-0.1em]\ar[dd,->,xshift=0.3em] \\
1111+&&&\cdots \\
1212+ D_0 \ar[r,"f_0",->,yshift=0.2em]\ar[r,"g_0"', <-,yshift=-0.2em] &
1313+ D_1 \ar[r,"f_1",->,yshift=0.2em]\ar[r,"g_1"', <-,yshift=-0.2em] &
1414+ D_2 \ar[r,-,dotted,yshift=0.2em]\ar[r,dotted,-,yshift=-0.2em]&
1515+ \cdots
1616+\end{tikzcd}
1717+}}
1818+Then #{\mathcal{F}(A)} is a [colimit](dt-005F) for the following [chain](dt-005C):
1919+\figure{\tex{\usepackage{tikz-cd}}{
2020+\begin{tikzcd}
2121+&&\mathcal{F}(A)\ar[ddll,<-,xshift=-0.8em]\ar[ddll,->,xshift=-0.2em]
2222+\ar[ddl,<-,xshift=-0.35em]\ar[ddl,->,xshift=0.1em]
2323+\ar[dd,<-,xshift=-0.1em]\ar[dd,->,xshift=0.3em] \\
2424+&&&\cdots \\
2525+ \mathcal{F}(D_0) \ar[r,"\mathcal{F}(f_0)",->,yshift=0.2em]\ar[r,"\mathcal{F}(g_0)"', <-,yshift=-0.2em] &
2626+ \mathcal{F}(D_1) \ar[r,"\mathcal{F}(f_1)",->,yshift=0.2em]\ar[r,"\mathcal{F}(g_1)"', <-,yshift=-0.2em] &
2727+ \mathcal{F}(D_2) \ar[r,-,dotted,yshift=0.2em]\ar[r,dotted,-,yshift=-0.2em]&
2828+ \cdots
2929+\end{tikzcd}
3030+}}
3131+}
+5
trees/dt/dt-005F.tree
···11+\import{dt-macros}
22+\author{liamoc}
33+\taxon{Definition}
44+\title{Colimits in the category #{\mathbf{Cpo}^\mathbf{R}}}
55+\p{A [cpo](dt-001D) #{A} is the \em{colimit} of an [#{\omega}-chain of cpos](dt-005C) #{A_i} if is both an [upper bound](dt-005G), i.e. there exists [retraction pairs](dt-0054) #{(f_i,g_i) : A_i \rpair{}{} A}, and for any other [upper bound](dt-005G) #{B}, for which there will exist [retraction pairs](dt-0054) #{(m_i,n_i) : A_i \rpair{}{} B}, there exists a \em{unique} [retraction pair](dt-0054) #{A \rpair{k}{k'} B} such that #{(m_i,n_i) = (k,k') \circ(f_i,g_i) } for all #{i \in \mathbb{N}}, where #{\circ} is [composition of retraction pairs](dt-0056). Viewed diagramatically, it is the same as \ref{dt-004S} where [continuous functions](dt-001J) are replaced by [retraction pairs](dt-0054).}
+17
trees/dt/dt-005G.tree
···11+\import{dt-macros}
22+\taxon{Definition}
33+\title{Upper bounds in the category #{\mathbf{Cpo}^\mathbf{R}}}
44+\p{A [cpo](dt-001D) #{A} is an [upper bound](dm-000C) of an [#{\omega}-chain of cpos](dt-005C) #{A_i} in [the category #{\mathbf{Cpo}^\textbf{R}}](dt-0058) if there is a family of [retraction pairs](dt-0054) #{A_i \rpair{f_i}{g_i} A} such that the following diagram commutes (i.e. for all #{i \in \mathbb{N}}, #{(f_i, g_i) = (f_{i+1},g_{i+1}) \circ (s_i,t_i)}, where #{\circ} is [composition of retraction pairs](dt-0056)):}
55+\figure{
66+\tex{\usepackage{tikz-cd}}{
77+\begin{tikzcd}
88+&&A\ar[ddll,<-,xshift=-0.8em,"f_0"']\ar[ddll,->,"g_0",xshift=-0.2em]
99+\ar[ddl,<-,"g_1",xshift=-0.35em]\ar[ddl,->,"f_1"',xshift=0.1em]
1010+\ar[dd,<-,"f_2"',xshift=-0.1em]\ar[dd,->,"g_2",xshift=0.3em] \\
1111+&&&\cdots \\
1212+ A_0 \ar[r,"s_0",->,yshift=0.2em]\ar[r,"t_0"', <-,yshift=-0.2em] &
1313+ A_1 \ar[r,"s_1",->,yshift=0.2em]\ar[r,"t_1"', <-,yshift=-0.2em] &
1414+ A_2 \ar[r,-,dotted,yshift=0.2em]\ar[r,dotted,-,yshift=-0.2em]&
1515+ \cdots
1616+\end{tikzcd}
1717+}}
+53
trees/dt/dt-005H.tree
···11+\import{dt-macros}
22+\author{liamoc}
33+\taxon{Construction}
44+\title{The colimit #{D^\infty}}
55+\p{Given an [#{\omega}-chain](dt-005C):}
66+\figure{
77+\tex{\usepackage{tikz-cd}}{
88+\begin{tikzcd}
99+ D_0 \ar[r,"f_0",->,yshift=0.2em]\ar[r,"g_0"', <-,yshift=-0.2em] &
1010+ D_1 \ar[r,"f_1",->,yshift=0.2em]\ar[r,"g_1"', <-,yshift=-0.2em] &
1111+ D_2 \ar[r,"f_2",->,yshift=0.2em]\ar[r,"g_2"', <-,yshift=-0.2em] &
1212+ D_3 \ar[r,-,dashed,yshift=0.2em]\ar[r,dashed,-,yshift=-0.2em] &
1313+ \cdots
1414+\end{tikzcd}
1515+}}
1616+\p{The [colimit](dt-005F) (or inverse limit) is the [cpo](dt-001D) of #{\omega}-tuples:
1717+##{
1818+D_\infty\; \triangleq\; \left\Set{ (x_0, x_1, \dots ) \mid x_i \in D_i \land x_i = g_i(x_{i+1}) \right}
1919+}
2020+That is, it is countable sequence of elements, one for each domain #{D_i}, where each element is consistent with earlier elements.}
2121+\p{ \strong{Ordering:} The ordering is the pointwise ordering of products, naturally generalised to #{\omega}-tuples. Under this ordering, #{D_\infty} is a [cpo](dt-001D). In fact if each #{D_i} is a [Scott domain](dt-004G), so is #{D_\infty}.
2222+\proofblock{
2323+\p{We shall prove that #{D_\infty} is an [upper bound](dt-005G) of the [#{\omega}-chain](dt-005C). Proof that it is the [least upper bound](dt-005F) is straightforward but tedious, and is omitted.}
2424+\p{We must construct a family of [retraction pairs](dt-0054):
2525+##{\left\Set{ D_i \rpair{\theta_{i,\infty}}{\theta_{\infty,i}} D_\infty \middle|\;\; i \in \mathbb{N}\;\; \right}}
2626+ such that the following diagram commutes:
2727+\figure{
2828+\tex{\usepackage{tikz-cd}}{\begin{tikzcd}
2929+&&D_\infty\ar[ddll,<-,xshift=-0.8em]\ar[ddll,->,xshift=-0.2em]
3030+\ar[ddl,<-,xshift=-0.35em]\ar[ddl,->,xshift=0.1em]
3131+\ar[dd,<-,xshift=-0.1em]\ar[dd,->,xshift=0.3em] \\
3232+&&&\cdots \\
3333+ D_0 \ar[r,"f_0",->,yshift=0.2em]\ar[r,"g_0"', <-,yshift=-0.2em] &
3434+ D_1 \ar[r,"f_1",->,yshift=0.2em]\ar[r,"g_1"', <-,yshift=-0.2em] &
3535+ D_2 \ar[r,-,dotted,yshift=0.2em]\ar[r,dotted,-,yshift=-0.2em]&
3636+ \cdots
3737+\end{tikzcd}
3838+}}
3939+Defining the projection of the [retraction pair](dt-0054) #{D_i \rpair{\theta_{i,\infty}}{\theta_{\infty,i}} D_\infty} is straightforward:
4040+##{
4141+\theta_{\infty,i}(x_0,x_1,\dots) \; \triangleq \; x_i
4242+}
4343+However, to define the \em{embedding} #{\theta_{i,\infty}} requires us to, for a given value #{x \in D_i}, produce an #{\omega}-tuple of values consistent with #{x} in every domain #{D_k}. We do this by defining #{\theta_{i,\infty}} in terms of helper functions #{\theta_{i,j}}:
4444+##{
4545+\theta_{i,\infty}(x) \; \triangleq \; (\theta_{i,0}(x),\theta_{i,1}(x),\theta_{i,2}(x),\dots)
4646+}
4747+The helper functions #{\theta_{i,j}} are defined by composing sequences of \em{embeddings} (#{f}s) or \em{projections} (#{g}s), depending on whether #{i < j} or #{j < i}. For example, when #{i = 2}:
4848+##{
4949+\begin{array}{lcl} \theta_{2,\infty}(x) &=& (\theta_{i,0}(x),\theta_{i,1}(x),\theta_{i,2}(x),\theta_{i,3}(x),\theta_{i,4}(x),\dots) \\[1em]
5050+&=& \lparen\underbrace{g_0(g_1(x))\rparen, g_1(x)}_{\text{\emph{approximations} to}\ x}, x, \underbrace{f_2(x), f_3(f_2(x)),\dots}_{\text{\emph{equivalent} to}\ x}\rparen
5151+\end{array}
5252+}
5353+}}}