···11+\import{dt-macros}
22+\import{table-macros}
13\taxon{Lecture}
24\title{Constructions on [cpos](dt-001D) and PCF}
35\author{liamoc}
46\p{This lecture is based on material from [[haskellhutt]], [[danascott]], [[jstoy]], [[cgunter]], and [[gwinskel]].}
55-\p{todo}77+\subtree{
88+\title{Products}
99+\p{Recall \ref{dt-000E}, which showed that the [product](dm-0005) of two [pointed posets](dt-000G) is itself a [pointed poset](dt-000G).
1010+1111+In \ref{dt-001X} you may also have shown that #{A \times B} is also a [cpo](dt-001D) if #{A} and #{B} are [cpos](dt-001D), with this definition for [lubs](dt-0017):
1212+##{
1313+\bigsqcup X \; = \; \left(\bigsqcup \{ x \mid \exists y.\ (x,y) \in X \}, \bigsqcup \{ y \mid \exists x.\ (x,y) \in X \}\right)
1414+}
1515+This definition can be made a little more comprehensible by defining it in terms of the two projection operators for pairs:
1616+}
1717+\transclude{dt-0020}
1818+\transclude{dt-0021}
1919+\transclude{dt-0022}
2020+\transclude{dt-0023}
2121+\transclude{dt-0024}
2222+}
2323+2424+
+45
trees/dt-0020.tree
···11+\import{dt-macros}
22+\import{table-macros}
33+\author{liamoc}
44+\taxon{Definition}
55+\title{Projection operators for [products](dm-0005)}
66+\p{Destruction of pairs is captured by the two \em{projection} operators, defined as follows:}
77+\table{
88+ \tr{
99+ \td{
1010+ \tex{\usepackage{string-diagrams}}{
1111+ \begin{tikzpicture}
1212+ \node at (-1.5cm,0) {$ $};
1313+ \node[box, box ports west = 2, box ports east = 2, minimum width=2cm, minimum height=2cm] (A) {};
1414+ \node[dot] at (A.west.1) {};
1515+ \node[dot] at (A.east.1) {};
1616+ \draw[thick] (A.west.1) -- (A.east.1);
1717+ \draw[thick,-|] (A.west.2) -- ([xshift=-1cm]A.east.2);
1818+ \node at ([xshift=-1cm,yshift=-0.8cm]A.east.2) {$\pi_1$};
1919+ \node[dot] at (A.west.2) {};
2020+ \end{tikzpicture}
2121+ }
2222+ }
2323+ \td{
2424+ ##{
2525+ \begin{array}{lcl}
2626+ \pi_0 : A \times B \rightarrow A & \qquad & \pi_1 : A \times B \rightarrow B \\
2727+ \pi_0(x, y) = x & & \pi_1(x, y) = y \\
2828+ \end{array}
2929+ }
3030+ }
3131+ \td{
3232+ \tex{\usepackage{string-diagrams}}{
3333+ \begin{tikzpicture}
3434+ \node[box, box ports west = 2, box ports east = 2, minimum width=2cm, minimum height=2cm] (B) at (12cm,0) {};
3535+ \node[dot] at (B.west.1) {};
3636+ \node[dot] at (B.east.2) {};
3737+ \draw[thick] (B.west.2) -- (B.east.2);
3838+ \draw[thick,-|] (B.west.1) -- ([xshift=-1cm]B.east.1);
3939+ \node at ([xshift=-1cm,yshift=-0.8cm]B.east.2) {$\pi_2$};
4040+ \node[dot] at (B.west.2) {};
4141+ \end{tikzpicture}
4242+ }
4343+ }
4444+ }
4545+}
+13
trees/dt-0021.tree
···11+\import{dt-macros}
22+\import{table-macros}
33+\taxon{Construction}
44+\author{liamoc}
55+\title{Product of [cpos](dt-001D)}
66+77+\p{Given [cpos](dt-001D) #{A} and #{B}, the [product](dt-000G) #{A \times B} is itself a [cpo](dt-001D), ordered by
88+##{ (x,y) \sqsubseteq_{X \times Y} (x',y') \quad \text{iff} \quad x \sqsubseteq_X x' \land y \sqsubseteq_Y y' }
99+with bottom value #{\bot_{X \times Y}} being #{(\bot_A, \bot_B)}. [Least upper bounds](dt-0017) are found by taking the [lubs](dt-0017) of each component:}
1010+1111+##{
1212+ \bigsqcup X \; = \; \left(\bigsqcup \{ \pi_0(x) \mid x \in X \}, \bigsqcup \{ \pi_1(x) \mid x \in X \}\right)
1313+}
+3
trees/dt-0022.tree
···11+\taxon{Theorem}
22+\author{liamoc}
33+\p{The [projection functions](dt-0020) #{\pi_0} and #{\pi_1} are [continuous](dt-001J).}
+30
trees/dt-0023.tree
···11+\import{dt-macros}
22+\import{table-macros}
33+\taxon{Definition}
44+\author{liamoc}
55+\title{The split function}
66+\p{
77+ \<html:div>[class]{sidefigure}{\tex{\usepackage{string-diagrams}}{
88+ \begin{tikzpicture}
99+ \node[box, box ports west = 1, box ports east = 2, minimum width=3cm, minimum height=3cm] (A) {};
1010+ \node[dot] at (A.east.1) {};
1111+ \node[dot] at (A.east.2) {};
1212+ \node[dot] at (A.west.1) {};
1313+ \node[dot] (X) at ([xshift=1cm]A.west.1) {};
1414+ \node[box,thick] (f) at ([xshift=-1cm]A.east.1) {f};
1515+ \node[box,thick] (g) at ([xshift=-1cm]A.east.2) {g};
1616+ \wires[thick]{
1717+ f = { west = X.north, east=A.east.1},
1818+ g = { west = X.south, east=A.east.2},
1919+ X = { west = A.west.1 }
2020+ }{}
2121+ \end{tikzpicture}}}
2222+ Construction of pairs is captured by the \em{split} function: If #{f : A \rightarrow B} and #{g : B \rightarrow C}, then \em{split}, written #{\langle f , g \rangle}, is defined as:
2323+2424+2525+ ##{
2626+ \begin{array}{lr}
2727+ \langle f , g \rangle : A \rightarrow B \times C\\
2828+ \langle f , g \rangle\ a = (f(a), g(a))
2929+ \end{array}
3030+ }}
+23
trees/dt-0024.tree
···11+\import{dt-macros}
22+\import{table-macros}
33+\taxon{Theorem}
44+\author{liamoc}
55+ \p{For [continuous functions](dt-001J) #{f} and #{g}, the [split function](dt-0023) #{\langle f, g \rangle} is [continuous](dt-001J).}
66+ \scope{
77+ \put\transclude/toc{false}
88+ \put\transclude/numbered{false}
99+ \subtree{\taxon{Proof}
1010+ \ul{
1111+ \li{ \em{#{\langle f, g \rangle} is [monotonic](dt-000J)}. Let #{x \sqsubseteq y \in A}. Then: ##{\begin{array}{lclr}
1212+ \langle f , g \rangle\ x & = & (f(x), g(x)) & \text{(def)}\\
1313+ & \sqsubseteq & (f(y), g(y)) & \text{(monotonicity of $f$,$g$)}\\
1414+ & = & \langle f , g \rangle\ y & \text{(def)}
1515+ \end{array}}}
1616+ \li{ \em{#{\langle f , g \rangle} preserves [lubs](dt-0017) of [directed](dt-0010) sets}. Let #{X \subseteq A} be [directed](dt-0010). Then:}
1717+ ##{\begin{array}{lclr}
1818+ \langle f , g \rangle\ (\bigsqcup X) & = & (f(\bigsqcup X), g(\bigsqcup X)) & \text{(def)}\\
1919+ & = & (\bigsqcup \{ f(x) \mid x \in X \}, \bigsqcup \{ g(x) \mid x \in X \}) & \text{(continuity of $f$,$g$)}\\
2020+ & = & \bigsqcup \{ \langle f , g \rangle\ x \mid x \in X \} & \text{(def)}
2121+ \end{array}}
2222+ }
2323+}}