···11+\taxon{Definition}
22+\title{Upper bound}
33+\p{An \em{upper bound} of a set #{Y} is some #{x} such that #{\forall y \in Y.\ y \sqsubseteq x} (where #{\sqsubseteq} is some [partial order](dm-0000)).}
+2-2
trees/dt-000Y.tree
···11\title{Chains and Unfolding}
22\p{Intuitively, recursive programs are executed by "unfolding" as much as necessary to get a result. We would like to characterise our domains to ensure that solutions always exist, and to allow us to pick the solutions that are "minimal" in the sense that they rely on a minimal amount of unfolding.}
33-\p{After converting a recursive program into a non-recursive [monotonic](dt-000J) higher order function #{f}, the [fixed point](dt-000S) we desire would intuitively be the [limit](todo) of the [ascending Kleene chain](dt-000X) of #{f}: }
33+\p{After converting a recursive program into a non-recursive [monotonic](dt-000J) higher order function #{f}, the [fixed point](dt-000S) we desire would intuitively be the \em{limit} of the [ascending Kleene chain](dt-000X) of #{f}, i.e. #{f(f(f(f(\dots))))}: }
44\transclude{dt-000X}
55-\p{Each element of [this chain](dt-000X) is another "unfolding" of the recursion.}
55+\p{Each successive element of [this chain](dt-000X) is another "unfolding" of the recursion.}
66\transclude{dt-000V}
77\transclude{dt-000W}
···22\title{Directed set}
33\author{liamoc}
44\p{
55-Formally, A non-empty subset #{Y \subseteq X} of a [poset](dm-0004) #{(X,\sqsubseteq)} is \em{directed} iff: ##{\forall x, y \in Y.\ \exists z \in Y.\ x \sqsubseteq z \land y \sqsubseteq z}
55+Formally, a non-empty subset #{Y \subseteq X} of a [poset](dm-0004) #{(X,\sqsubseteq)} is \em{directed} iff: ##{\forall x, y \in Y.\ \exists z \in Y.\ x \sqsubseteq z \land y \sqsubseteq z}
66\figure{\tex{\usepackage{tikz}}{
77\begin{tikzpicture}
88\draw[dotted, thick] (0,0) circle (1.5 cm);
···2424\end{tikzpicture}
2525}
2626}
2727-The #{z} above is an [upper bound] of #{x} and #{y}. Hence, a non-empty set is \em{directed} iff every pair of values has an [upperbound] \em{in the set}.}
2727+The #{z} above is an [upper bound](dm-000C) of #{x} and #{y}. Hence, a non-empty set is \em{directed} iff every pair of values has an [upper bound](dm-000C) \em{in the set}.}
2828\p{Intuitively, directed sets are "going somewhere" — given two elements we can always find a "greater" one in the set.}
2929
+1
trees/dt-0011.tree
···11\taxon{Example}
22+\title{Power sets are directed}
23\p{The [power set](dm-0006) of any set #{X} is directed under #{\subseteq}.}
34\p{ \strong{Below}: #{\cal{P}(\{1,2,3\})}: }
45\figure{\tex{\usepackage{tikz}}{
+6-1
trees/dt-0012.tree
···11\taxon{Theorem}
22+\title{Chain → Directed}
23\author{liamoc}
34\p{All non-empty [chains](dt-000V) are [directed](dt-0010).}
55+\scope{
66+\put\transclude/toc{false}
77+\put\transclude/numbered{false}
48\subtree{
59\taxon{Proof}
66-\p{Let #{C} be a chain. Then, given two elements #{x,y \in C} we know from [totality](dm-0008) that either #{x \sqsubseteq y} or #{y \subseteq x}. If #{x \sqsubseteq y}, then #{y} is the [upperbound], otherwise #{x} is the [upperbound]. }
1010+\p{Let #{C} be a [chain](dt-000V). Then, given two elements #{x,y \in C} we know from [totality](dm-0008) that either #{x \sqsubseteq y} or #{y \sqsubseteq x}. If #{x \sqsubseteq y}, then #{y} is the [upper bound](dm-000C), otherwise #{x} is the [upper bound](dm-000C). }
1111+}
712}
+1-1
trees/dt-0013.tree
···33\p{
44 A subset #{Y \subseteq X} of a [poset](dm-0004) #{X} is \em{consistent} iff
55 ##{\exists x \in X.\ \forall y \in Y.\ y \sqsubseteq x}
66- Such an #{x} is called an [upper bound] of #{Y}.
66+ Such an #{x} is called an [upper bound](dm-000C) of #{Y}.
77 \figure{\tex{\usepackage{tikz}}{
88 \begin{tikzpicture}
99 \node (a) at (-0.8,0) {$\bullet$};
+17
trees/dt-0014.tree
···11+\import{dt-macros}
22+\taxon{Theorem}
33+\title{Alternative characterisation of directedness}
44+\author{liamoc}
55+\p{A subset #{Y \subseteq X} of a [poset](dm-0004) #{X} is [directed](dt-0010) iff every \em{finite} subset of #{Y' \subseteq Y} has an [upper bound](dm-000C) in #{Y}.}
66+\scope{
77+\put\transclude/toc{false}
88+\put\transclude/numbered{false}
99+\subtree{
1010+\taxon{Proof}
1111+\ul{
1212+\li{\strong{⇐}: Every pair of elements #{x,y \in Y} has an [upper bound](dm-000C) simply by taking the [upper bound](dm-000C) of the set #{ \Set{x,y}. }
1313+\li{\strong{⇒}: Given a finite set #{ X = \Set{x_1,x_2,\dots, x_n} }, we can show it has an [upper bound](dm-000C) by an inductive process, first taking the [upper bound](dm-000C) of #{x_1} and #{x_2}, and then taking the [upper bound](dm-000C) of that an #{x_3} and so on until we have an [upper bound](dm-000C) for the whole set. This induction works because the set #{X} is finite.}
1414+}
1515+}
1616+}
1717+}