mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
Work on proofs
This commit is contained in:
parent
5f479bf4f8
commit
da4223e011
5 changed files with 321 additions and 194 deletions
|
@ -7,3 +7,12 @@
|
||||||
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\QWe call a morphism \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q guarded if there exists an \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q such that the following diagram commutes: &&& &&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+$"}
|
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\QWe call a morphism \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q guarded if there exists an \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q such that the following diagram commutes: &&& &&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+$"}
|
||||||
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\QIt suffices to show \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q, because then follows: \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q We prove this by coinduction using: [inline]Change name of morphism &&& &&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+$"}
|
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\QIt suffices to show \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q, because then follows: \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q We prove this by coinduction using: [inline]Change name of morphism &&& &&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+$"}
|
||||||
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\Q[inline]Make this more explicit The first step in both equations can be proven by monicity of \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q and then using \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q and the dual diagram for \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q which is a direct consequence of \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q: &&&& &&&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q the last step holds generally for any \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.\\E$"}
|
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\Q[inline]Make this more explicit The first step in both equations can be proven by monicity of \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q and then using \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q and the dual diagram for \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q which is a direct consequence of \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q: &&&& &&&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q the last step holds generally for any \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.\\E$"}
|
||||||
|
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\QFirst we need to show naturality of \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q, i.e. we need to show that \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q The needed coalgebra is shown in this diagram: &&&& &&&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q Next we check the strength laws: [\\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q] To show that \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q we do coinduction using the following coalgebra: \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q [\\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q] We don't need coinduction to show \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q, but we need a small helper lemma: \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q which is a direct consequence of \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.\\E$"}
|
||||||
|
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\QFirst we need to show naturality of \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q, i.e. we need to show that \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q The coalgebra for coinduction is: &&&& &&&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q We write \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q to abbreviate the rather long coalgebra, i.e. in this diagram \\E(?:Dummy|Ina|Jimmy-)[0-9]+$"}
|
||||||
|
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\Q&&&&&&& &&&&&&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q then follows from this diagram.\\E$"}
|
||||||
|
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\QSince \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q is a final coalgebra we get the following proof principle: Given two morphisms \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q, to show that \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q it suffices to show that there exists a coalgebra structure \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q such that the following diagrams commute: &&&&&& &&&&&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q Uniqueness of the coalgebra morphism \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q then gives us that indeed \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.\\E$"}
|
||||||
|
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\QFirst we need to show naturality of \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q, i.e. we need to show that \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q The coalgebra for coinduction is: &&&& &&&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q We write \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q to abbreviate the used coalgebra, i.e. in this diagram \\E(?:Dummy|Ina|Jimmy-)[0-9]+$"}
|
||||||
|
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\QNext we check the strength laws: [\\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q] To show that \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q we do coinduction using the following coalgebra: &&& &&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q [\\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q] We don't need coinduction to show \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q, but we need a small helper lemma: \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q which is a direct consequence of \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.\\E$"}
|
||||||
|
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\QIt suffices to show \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q, because then follows: \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q We prove this by coinduction using: &&& &&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+$"}
|
||||||
|
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\Q[inline]Move this remark to the beginning of proof The first step in both equations can be proven by monicity of \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q and then using \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q and the dual diagram for \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q which is a direct consequence of \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q: &&&& &&&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+$"}
|
||||||
|
{"rule":"ENGLISH_WORD_REPEAT_RULE","sentence":"^\\QTo show that \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q it suffices to show that there exists a coalgebra structure \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q such that the following diagrams commute: &&&&&& &&&&&& \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q Uniqueness of the coalgebra morphism \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q then results in \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.\\E$"}
|
||||||
|
|
7
thesis/main.pyg
Normal file
7
thesis/main.pyg
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
mutual
|
||||||
|
data Delay (A : Set) : Set where
|
||||||
|
now : A → Delay A
|
||||||
|
later : Delay′ A → Delay A
|
||||||
|
record Delay′ (A : Set) : Set where
|
||||||
|
coinductive
|
||||||
|
field force : Delay A
|
|
@ -381,7 +381,7 @@ For programmers a second equivalent definition is more useful:
|
||||||
A Kleisli triple on a category $\C$ is a triple $(F, \eta, (-)^*)$, where $F : \obj{C} \rightarrow \obj{C}$ is a mapping on objects, $(\eta_X : X \rightarrow FX)_{X\in\obj{C}}$ is a family of morphisms and for every morphism $f : X \rightarrow FY$ there exists a morphism $f^* : FX \rightarrow FY$ called the Kleisli lifting, where the following laws hold:
|
A Kleisli triple on a category $\C$ is a triple $(F, \eta, (-)^*)$, where $F : \obj{C} \rightarrow \obj{C}$ is a mapping on objects, $(\eta_X : X \rightarrow FX)_{X\in\obj{C}}$ is a family of morphisms and for every morphism $f : X \rightarrow FY$ there exists a morphism $f^* : FX \rightarrow FY$ called the Kleisli lifting, where the following laws hold:
|
||||||
\begin{alignat*}{2}
|
\begin{alignat*}{2}
|
||||||
&\eta_X^* &&= id_{FX} \tag*{(K1)}\label{K1}\\
|
&\eta_X^* &&= id_{FX} \tag*{(K1)}\label{K1}\\
|
||||||
&\eta_X \circ f^* &&= f \tag*{(K2)}\label{K2}\\
|
&f^* \circ \eta_X &&= f \tag*{(K2)}\label{K2}\\
|
||||||
&f^* \circ g* &&= (f \circ g^*)^* \tag*{(K3)}\label{K3}
|
&f^* \circ g* &&= (f \circ g^*)^* \tag*{(K3)}\label{K3}
|
||||||
\end{alignat*}
|
\end{alignat*}
|
||||||
\end{definition}
|
\end{definition}
|
||||||
|
|
|
@ -180,25 +180,26 @@ Since $DX$ is defined as a final coalgebra, we can define morphisms via corecurs
|
||||||
We will make use of the fact that every $DX$ is a final coalgebra:
|
We will make use of the fact that every $DX$ is a final coalgebra:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item[\ref{D1}] This follows by definition of $now$.
|
\item[\ref{D1}] This follows by definition of $now$.
|
||||||
\item[\ref{D2}] We define $f^* = \;! \circ i_1$, where $!$ is the unique coalgebra morphism in this diagram:
|
\item[\ref{D2}] We define $f^* = \;\coalg{\alpha} \circ i_1$, where $\coalg{\alpha}$ is the unique coalgebra morphism in this diagram:
|
||||||
\todo[inline]{Use other name than '!' for unique morphism => semantic brackets!}
|
|
||||||
|
|
||||||
% https://q.uiver.app/#q=WzAsNSxbMCwxLCJEWCArIERZIl0sWzcsMSwiWSArIChEWCArIERZKSJdLFswLDAsIkRYIl0sWzAsMiwiRFkiXSxbNywyLCJZICsgRFkiXSxbMCwxLCJbIFsgWyBpXzEgLCBpXzIgXFxjaXJjIGlfMiBdIFxcY2lyYyAob3V0IFxcY2lyYyBmKSAsIGlfMiBcXGNpcmMgaV8xIF0gXFxjaXJjIG91dCAsIChpZCArIGlfMikgXFxjaXJjIG91dCBdIl0sWzIsMCwiaV8xIl0sWzAsMywiISIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dLFszLDQsIm91dCJdLFsxLDQsImlkICsgISIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dXQ==
|
% https://q.uiver.app/#q=WzAsNSxbMCwxLCJEWCArIERZIl0sWzcsMSwiWSArIChEWCArIERZKSJdLFswLDAsIkRYIl0sWzAsMiwiRFkiXSxbNywyLCJZICsgRFkiXSxbMCwxLCJcXGFscGhhIDo9IFsgWyBbIGlfMSAsIGlfMiBcXGNpcmMgaV8yIF0gXFxjaXJjIChvdXQgXFxjaXJjIGYpICwgaV8yIFxcY2lyYyBpXzEgXSBcXGNpcmMgb3V0ICwgKGlkICsgaV8yKSBcXGNpcmMgb3V0IF0iXSxbMiwwLCJpXzEiXSxbMCwzLCJcXGNvYWxne1xcYWxwaGF9IiwwLHsic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fV0sWzMsNCwib3V0Il0sWzEsNCwiaWQgKyBcXGNvYWxne1xcYWxwaGF9IiwwLHsic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fV1d
|
||||||
\[\begin{tikzcd}
|
\[\begin{tikzcd}[ampersand replacement=\&]
|
||||||
DX \\
|
DX \\
|
||||||
{DX + DY} &&&&&&& {Y + (DX + DY)} \\
|
{DX + DY} \&\&\&\&\&\&\& {Y + (DX + DY)} \\
|
||||||
DY &&&&&&& {Y + DY}
|
DY \&\&\&\&\&\&\& {Y + DY}
|
||||||
\arrow["{[ [ [ i_1 , i_2 \circ i_2 ] \circ (out \circ f) , i_2 \circ i_1 ] \circ out , (id + i_2) \circ out ]}", from=2-1, to=2-8]
|
\arrow["{\alpha := [ [ [ i_1 , i_2 \circ i_2 ] \circ (out \circ f) , i_2 \circ i_1 ] \circ out , (id + i_2) \circ out ]}", from=2-1, to=2-8]
|
||||||
\arrow["{i_1}", from=1-1, to=2-1]
|
\arrow["{i_1}", from=1-1, to=2-1]
|
||||||
\arrow["{!}", dashed, from=2-1, to=3-1]
|
\arrow["{\coalg{\alpha}}", dashed, from=2-1, to=3-1]
|
||||||
\arrow["out", from=3-1, to=3-8]
|
\arrow["out", from=3-1, to=3-8]
|
||||||
\arrow["{id + !}", dashed, from=2-8, to=3-8]
|
\arrow["{id + \coalg{\alpha}}", dashed, from=2-8, to=3-8]
|
||||||
\end{tikzcd}\]
|
\end{tikzcd}\]
|
||||||
$out \circ f^* = [ out \circ f , i_2 \circ f^* ] \circ out$ then follows from this diagram.
|
$out \circ f^* = [ out \circ f , i_2 \circ f^* ] \circ out$ then follows from this diagram.
|
||||||
|
|
||||||
|
\improvement{Details of why it is coalgebra morphism}
|
||||||
|
|
||||||
We are left to check uniqueness. Let $g : DX \rightarrow DY$ and $out \circ g = [ out \circ f , i_2 \circ g ] \circ out$.
|
We are left to check uniqueness. Let $g : DX \rightarrow DY$ and $out \circ g = [ out \circ f , i_2 \circ g ] \circ out$.
|
||||||
Then $[ g , id ] : DX + DY \rightarrow DY$\improvement{details of why it is coalgebra morphism} is a coalgebra morphism and thus $[ g , id ] =\;!$ by uniqueness of $!$.
|
Then $[ g , id ] : DX + DY \rightarrow DY$ is a coalgebra morphism and thus $[ g , id ] =\;\coalg{\alpha}$ by uniqueness of $\coalg{\alpha}$.
|
||||||
It follows: \[g = [ g , id ] \circ i_1 =\;! \circ i_1 = f^*\]
|
It follows: \[g = [ g , id ] \circ i_1 =\;\coalg{\alpha} \circ i_1 = f^*\]
|
||||||
\item[\ref{D3}] This follows immediately since $\tau$ is the unique coalgebra morphism from $(X \times DY, dstl \circ (id \times out))$ into the terminal coalgebra $(D(X \times Y) , out)$.
|
\item[\ref{D3}] This follows immediately since $\tau$ is the unique coalgebra morphism from $(X \times DY, dstl \circ (id \times out))$ into the terminal coalgebra $(D(X \times Y) , out)$.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{proof}
|
\end{proof}
|
||||||
|
@ -211,23 +212,32 @@ Since $DX$ is defined as a final coalgebra, we can define morphisms via corecurs
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item[\ref{K1}]
|
\item[\ref{K1}]
|
||||||
By uniqueness of $now^*$ it suffices to show that $out \circ id = [ out \circ now , i_2 \circ id ] \circ out$ which instantly follows by \ref{D1}.
|
By uniqueness of $now^*$ it suffices to show that $out \circ id = [ out \circ now , i_2 \circ id ] \circ out$ which instantly follows by \ref{D1}.
|
||||||
\item[\ref{K2}] Let $f : X \rightarrow DY$. We use the fact that $out$ is monic and the following equation:
|
\item[\ref{K2}] Let $f : X \rightarrow DY$. We proceed by monicity of $out$:
|
||||||
|
\begin{alignat*}{1}
|
||||||
\[out \circ f^* \circ now \overset{\ref{D2}}{=} [ out \circ f , i_2 \circ f^* ] \circ out \circ now \overset{\ref{D1}}{=} out \circ f \]
|
&out \circ f^* \circ now
|
||||||
|
\\=\;&[ out \circ f , i_2 \circ f^* ] \circ out \circ now\tag*{\ref{D2}}
|
||||||
\item[\ref{K3}] Using uniqueness of $(h^* \circ g)^*$ we need to show $out \circ h^* \circ g^* = [ out \circ h^* \circ g , i_2 \circ h^* \circ g^* ] \circ out$ which follows by multiple uses of \ref{D2}.
|
\\=\;&[ out \circ f , i_2 \circ f^* ] \circ i_1\tag*{\ref{D1}}
|
||||||
\todo[inline]{More details probably for both K2 and K3}
|
\\=\;&out \circ f
|
||||||
|
\end{alignat*}
|
||||||
|
\item[\ref{K3}] Let $f : Y \rightarrow Z, g : X \rightarrow Z$ to show $f^* \circ g^* = (f^* \circ g)^*$ by uniqueness of $(f^* \circ g)^*$ it suffices to show:
|
||||||
|
\begin{alignat*}{1}
|
||||||
|
&out \circ f^* \circ g^*
|
||||||
|
\\=\;&[ out \circ f , i_2 \circ f^* ] \circ out \circ g^*\tag*{\ref{D2}}
|
||||||
|
\\=\;&[ out \circ f , i_2 \circ f^* ] \circ [ out \circ g , i_2 \circ g^* ] \circ out\tag*{\ref{D2}}
|
||||||
|
\\=\;&[ [ out \circ f , i_2 \circ f^* ] \circ out \circ g , i_2 \circ f^* \circ g^* ] \circ out
|
||||||
|
\\=\;&[ out \circ f^* \circ g , i_2 \circ f^* \circ g^* ] \circ out\tag*{\ref{D2}}
|
||||||
|
\end{alignat*}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{proof}
|
\end{proof}
|
||||||
|
|
||||||
Since $(DX, out)$ is a final coalgebra we get the following proof principle:
|
Finality of the coalgebras $(DX, out : DX \rightarrow X + DX)_{X \in \obj{\C}}$ yields the following proof principle:
|
||||||
\begin{remark}[Proof by coinduction]
|
\begin{remark}[Proof by coinduction]
|
||||||
\label{rem:coinduction}
|
\label{rem:coinduction}
|
||||||
Given two morphisms $f, g : X \rightarrow DY$, to show that $f = g$ it suffices to show that there exists a coalgebra structure $\alpha : X \rightarrow Y + X$ such that the following diagrams commute:
|
Given two morphisms $f, g : X \rightarrow DY$. To show that $f = g$ it suffices to show that there exists a coalgebra structure $\alpha : X \rightarrow Y + X$ such that the following diagrams commute:
|
||||||
% https://q.uiver.app/#q=WzAsOCxbMCwwLCJYIl0sWzAsMSwiRFkiXSxbMiwxLCJZICsgRFkiXSxbMiwwLCJZICsgWCJdLFs0LDAsIlgiXSxbNCwxLCJEWSJdLFs2LDAsIlkgKyBYIl0sWzYsMSwiWSArIERZIl0sWzEsMiwib3V0Il0sWzAsMywiXFxhbHBoYSJdLFswLDEsImYiXSxbMywyLCJpZCArIGYiXSxbNCw2LCJcXGFscGhhIl0sWzQsNSwiZyJdLFs2LDcsImlkICsgZyJdLFs1LDcsIm91dCIsMl1d
|
% https://q.uiver.app/#q=WzAsOCxbMCwwLCJYIl0sWzAsMSwiRFkiXSxbMiwxLCJZICsgRFkiXSxbMiwwLCJZICsgWCJdLFs0LDAsIlgiXSxbNCwxLCJEWSJdLFs2LDAsIlkgKyBYIl0sWzYsMSwiWSArIERZIl0sWzEsMiwib3V0Il0sWzAsMywiXFxhbHBoYSJdLFswLDEsImYiXSxbMywyLCJpZCArIGYiXSxbNCw2LCJcXGFscGhhIl0sWzQsNSwiZyJdLFs2LDcsImlkICsgZyJdLFs1LDcsIm91dCJdXQ==
|
||||||
\[\begin{tikzcd}
|
\[\begin{tikzcd}[ampersand replacement=\&]
|
||||||
X && {Y + X} && X && {Y + X} \\
|
X \&\& {Y + X} \&\& X \&\& {Y + X} \\
|
||||||
DY && {Y + DY} && DY && {Y + DY}
|
DY \&\& {Y + DY} \&\& DY \&\& {Y + DY}
|
||||||
\arrow["out", from=2-1, to=2-3]
|
\arrow["out", from=2-1, to=2-3]
|
||||||
\arrow["\alpha", from=1-1, to=1-3]
|
\arrow["\alpha", from=1-1, to=1-3]
|
||||||
\arrow["f", from=1-1, to=2-1]
|
\arrow["f", from=1-1, to=2-1]
|
||||||
|
@ -235,9 +245,9 @@ Since $(DX, out)$ is a final coalgebra we get the following proof principle:
|
||||||
\arrow["\alpha", from=1-5, to=1-7]
|
\arrow["\alpha", from=1-5, to=1-7]
|
||||||
\arrow["g", from=1-5, to=2-5]
|
\arrow["g", from=1-5, to=2-5]
|
||||||
\arrow["{id + g}", from=1-7, to=2-7]
|
\arrow["{id + g}", from=1-7, to=2-7]
|
||||||
\arrow["out"', from=2-5, to=2-7]
|
\arrow["out", from=2-5, to=2-7]
|
||||||
\end{tikzcd}\]
|
\end{tikzcd}\]
|
||||||
Uniqueness of the coalgebra morphism $! : (X, \alpha) \rightarrow (DY, out)$ then gives us that indeed $f = g$.
|
Uniqueness of the coalgebra morphism $\coalg{\alpha} : (X, \alpha) \rightarrow (DY, out)$ then results in $f = g$.
|
||||||
\end{remark}
|
\end{remark}
|
||||||
|
|
||||||
\begin{theorem}
|
\begin{theorem}
|
||||||
|
@ -248,29 +258,31 @@ Since $(DX, out)$ is a final coalgebra we get the following proof principle:
|
||||||
|
|
||||||
First we need to show naturality of $\tau$, i.e. we need to show that
|
First we need to show naturality of $\tau$, i.e. we need to show that
|
||||||
\[\tau \circ (f \times (now \circ g)^*) = (now \circ (f \times g))^* \circ \tau\]
|
\[\tau \circ (f \times (now \circ g)^*) = (now \circ (f \times g))^* \circ \tau\]
|
||||||
The needed coalgebra is shown in this diagram:
|
The coalgebra for coinduction is:
|
||||||
% https://q.uiver.app/#q=WzAsNixbMCwwLCJYIFxcdGltZXMgRFkiXSxbMCwyLCJEKEFcXHRpbWVzIEIpIl0sWzQsMiwiQVxcdGltZXMgQiArIEQoQSBcXHRpbWVzIEIpIl0sWzEsMCwiWCBcXHRpbWVzIChZICsgRFkpIl0sWzIsMCwiWCBcXHRpbWVzIFkgKyBYIFxcdGltZXMgRFkiXSxbNCwwLCJBIFxcdGltZXMgQiArIFggXFx0aW1lcyBEWSJdLFsxLDIsIm91dCJdLFswLDMsImlkIFxcdGltZXMgb3V0Il0sWzMsNCwiZHN0bCJdLFswLDEsIiEiLDAseyJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJkYXNoZWQifX19XSxbNCw1LCJmIFxcdGltZXMgZyArIGlkIl0sWzUsMiwiaWQgKyAhIiwwLHsic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fV1d
|
% https://q.uiver.app/#q=WzAsNixbMCwwLCJYIFxcdGltZXMgRFkiXSxbMCwyLCJEKEFcXHRpbWVzIEIpIl0sWzQsMiwiQVxcdGltZXMgQiArIEQoQSBcXHRpbWVzIEIpIl0sWzEsMCwiWCBcXHRpbWVzIChZICsgRFkpIl0sWzIsMCwiWCBcXHRpbWVzIFkgKyBYIFxcdGltZXMgRFkiXSxbNCwwLCJBIFxcdGltZXMgQiArIFggXFx0aW1lcyBEWSJdLFsxLDIsIm91dCJdLFswLDMsImlkIFxcdGltZXMgb3V0Il0sWzMsNCwiZHN0bCJdLFswLDEsIlxcY29hbGd7LX0iLDAseyJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJkYXNoZWQifX19XSxbNCw1LCJmIFxcdGltZXMgZyArIGlkIl0sWzUsMiwiaWQgKyBcXGNvYWxney19IiwwLHsic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fV1d
|
||||||
\[\begin{tikzcd}
|
\[\begin{tikzcd}[ampersand replacement=\&]
|
||||||
{X \times DY} & {X \times (Y + DY)} & {X \times Y + X \times DY} && {A \times B + X \times DY} \\
|
{X \times DY} \& {X \times (Y + DY)} \& {X \times Y + X \times DY} \&\& {A \times B + X \times DY} \\
|
||||||
\\
|
\\
|
||||||
{D(A\times B)} &&&& {A\times B + D(A \times B)}
|
{D(A\times B)} \&\&\&\& {A\times B + D(A \times B)}
|
||||||
\arrow["out", from=3-1, to=3-5]
|
\arrow["out", from=3-1, to=3-5]
|
||||||
\arrow["{id \times out}", from=1-1, to=1-2]
|
\arrow["{id \times out}", from=1-1, to=1-2]
|
||||||
\arrow["dstl", from=1-2, to=1-3]
|
\arrow["dstl", from=1-2, to=1-3]
|
||||||
\arrow["{!}", dashed, from=1-1, to=3-1]
|
\arrow["{\coalg{-}}", dashed, from=1-1, to=3-1]
|
||||||
\arrow["{f \times g + id}", from=1-3, to=1-5]
|
\arrow["{f \times g + id}", from=1-3, to=1-5]
|
||||||
\arrow["{id + !}", dashed, from=1-5, to=3-5]
|
\arrow["{id + \coalg{-}}", dashed, from=1-5, to=3-5]
|
||||||
\end{tikzcd}\]
|
\end{tikzcd}\]
|
||||||
|
We write $\coalg{-}$ to abbreviate the used coalgebra, i.e. in this diagram $\coalg{-} = \coalg{(f\times g + id) \circ dstl \circ (id \times out)}$
|
||||||
|
|
||||||
Next we check the strength laws:
|
Next we check the strength laws:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item[\ref{S1}] To show that $(now \circ \pi_2)^* \circ \tau = \pi_2$ we do coinduction using the following coalgebra:
|
\item[\ref{S1}] To show that $(now \circ \pi_2)^* \circ \tau = \pi_2$ we do coinduction using the following coalgebra:
|
||||||
% https://q.uiver.app/#q=WzAsNixbMCwwLCIxIFxcdGltZXMgRFgiXSxbMCwxLCJEWCJdLFszLDAsIlggKyAxIFxcdGltZXMgRFgiXSxbMywxLCJYICsgRFgiXSxbMSwwLCIxIFxcdGltZXMgWCArIERYIl0sWzIsMCwiMSBcXHRpbWVzIFggKyAxIFxcdGltZXMgRFgiXSxbMSwzLCJvdXQiXSxbMCwxLCIhIiwwLHsic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fV0sWzIsMywiaWQgKyAhIl0sWzAsNCwiaWQgXFx0aW1lcyBvdXQiXSxbNCw1LCJkc3RsIl0sWzUsMiwiXFxwaV8yICsgaWQiXV0=
|
% https://q.uiver.app/#q=WzAsNixbMCwwLCIxIFxcdGltZXMgRFgiXSxbMCwxLCJEWCJdLFszLDAsIlggKyAxIFxcdGltZXMgRFgiXSxbMywxLCJYICsgRFgiXSxbMSwwLCIxIFxcdGltZXMgWCArIERYIl0sWzIsMCwiMSBcXHRpbWVzIFggKyAxIFxcdGltZXMgRFgiXSxbMSwzLCJvdXQiXSxbMCwxLCJcXGNvYWxney19IiwwLHsic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fV0sWzIsMywiaWQgKyBcXGNvYWxney19Il0sWzAsNCwiaWQgXFx0aW1lcyBvdXQiXSxbNCw1LCJkc3RsIl0sWzUsMiwiXFxwaV8yICsgaWQiXV0=
|
||||||
\[\begin{tikzcd}
|
\[\begin{tikzcd}[ampersand replacement=\&]
|
||||||
{1 \times DX} & {1 \times X + DX} & {1 \times X + 1 \times DX} & {X + 1 \times DX} \\
|
{1 \times DX} \& {1 \times X + DX} \& {1 \times X + 1 \times DX} \& {X + 1 \times DX} \\
|
||||||
DX &&& {X + DX}
|
DX \&\&\& {X + DX}
|
||||||
\arrow["out", from=2-1, to=2-4]
|
\arrow["out", from=2-1, to=2-4]
|
||||||
\arrow["{!}", dashed, from=1-1, to=2-1]
|
\arrow["{\coalg{-}}", dashed, from=1-1, to=2-1]
|
||||||
\arrow["{id + !}", from=1-4, to=2-4]
|
\arrow["{id + \coalg{-}}", from=1-4, to=2-4]
|
||||||
\arrow["{id \times out}", from=1-1, to=1-2]
|
\arrow["{id \times out}", from=1-1, to=1-2]
|
||||||
\arrow["dstl", from=1-2, to=1-3]
|
\arrow["dstl", from=1-2, to=1-3]
|
||||||
\arrow["{\pi_2 + id}", from=1-3, to=1-4]
|
\arrow["{\pi_2 + id}", from=1-3, to=1-4]
|
||||||
|
@ -287,29 +299,29 @@ Since $(DX, out)$ is a final coalgebra we get the following proof principle:
|
||||||
=\; & out^{-1} \circ (id + \tau) \circ dstl \circ (id \times i_1)\tag*{\ref*{helper}} \\
|
=\; & out^{-1} \circ (id + \tau) \circ dstl \circ (id \times i_1)\tag*{\ref*{helper}} \\
|
||||||
=\; & now
|
=\; & now
|
||||||
\end{alignat*}
|
\end{alignat*}
|
||||||
where the last step follows since $dstl \circ (id \times i_1) = i_1$.
|
where the last step follows by $dstl \circ (id \times i_1) = i_1$.
|
||||||
\item[\ref{S3}] We need to check $\tau^* \circ \tau = \tau \circ (id \times id^*)$, the coalgebra for coinduction is:
|
\item[\ref{S3}] We need to check $\tau^* \circ \tau = \tau \circ (id \times id^*)$, the coalgebra for coinduction is:
|
||||||
% https://q.uiver.app/#q=WzAsNixbMCwwLCJYIFxcdGltZXMgRERZIl0sWzAsMiwiRChYXFx0aW1lcyBZKSJdLFsxLDAsIlggXFx0aW1lcyAoRFkgKyBERFkpIl0sWzIsMCwiWCBcXHRpbWVzIERZICsgWCBcXHRpbWVzIEREWSJdLFsyLDIsIlggXFx0aW1lcyBZICsgRChYIFxcdGltZXMgWSkiXSxbMiwxLCJYIFxcdGltZXMgWSArIFggXFx0aW1lcyBERFkiXSxbMCwxLCIhIiwwLHsic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fV0sWzAsMiwiaWQgXFx0aW1lcyBvdXQiXSxbMiwzLCJkc3RsIl0sWzEsNCwib3V0Il0sWzUsNCwiaWQgKyBcXDshIiwyXSxbMyw1LCJbIChpZCArIChpZCBcXHRpbWVzIG5vdykpIFxcY2lyYyBkc3RsIFxcY2lyYyAoaWQgXFx0aW1lcyBvdXQpICwgaV8yIF0iLDJdXQ==
|
% https://q.uiver.app/#q=WzAsNixbMCwwLCJYIFxcdGltZXMgRERZIl0sWzAsMiwiRChYXFx0aW1lcyBZKSJdLFsxLDAsIlggXFx0aW1lcyAoRFkgKyBERFkpIl0sWzIsMCwiWCBcXHRpbWVzIERZICsgWCBcXHRpbWVzIEREWSJdLFsyLDIsIlggXFx0aW1lcyBZICsgRChYIFxcdGltZXMgWSkiXSxbMiwxLCJYIFxcdGltZXMgWSArIFggXFx0aW1lcyBERFkiXSxbMCwxLCJcXGNvYWxney19IiwwLHsic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fV0sWzAsMiwiaWQgXFx0aW1lcyBvdXQiXSxbMiwzLCJkc3RsIl0sWzEsNCwib3V0Il0sWzUsNCwiaWQgKyBcXGNvYWxney19IiwyXSxbMyw1LCJbIChpZCArIChpZCBcXHRpbWVzIG5vdykpIFxcY2lyYyBkc3RsIFxcY2lyYyAoaWQgXFx0aW1lcyBvdXQpICwgaV8yIF0iLDJdXQ==
|
||||||
\[\begin{tikzcd}
|
\[\begin{tikzcd}[ampersand replacement=\&]
|
||||||
{X \times DDY} & {X \times (DY + DDY)} & {X \times DY + X \times DDY} \\
|
{X \times DDY} \& {X \times (DY + DDY)} \& {X \times DY + X \times DDY} \\
|
||||||
&& {X \times Y + X \times DDY} \\
|
\&\& {X \times Y + X \times DDY} \\
|
||||||
{D(X\times Y)} && {X \times Y + D(X \times Y)}
|
{D(X\times Y)} \&\& {X \times Y + D(X \times Y)}
|
||||||
\arrow["{!}", dashed, from=1-1, to=3-1]
|
\arrow["{\coalg{-}}", dashed, from=1-1, to=3-1]
|
||||||
\arrow["{id \times out}", from=1-1, to=1-2]
|
\arrow["{id \times out}", from=1-1, to=1-2]
|
||||||
\arrow["dstl", from=1-2, to=1-3]
|
\arrow["dstl", from=1-2, to=1-3]
|
||||||
\arrow["out", from=3-1, to=3-3]
|
\arrow["out", from=3-1, to=3-3]
|
||||||
\arrow["{id + \;!}"', from=2-3, to=3-3]
|
\arrow["{id + \coalg{-}}"', from=2-3, to=3-3]
|
||||||
\arrow["{[ (id + (id \times now)) \circ dstl \circ (id \times out) , i_2 ]}"', from=1-3, to=2-3]
|
\arrow["{[ (id + (id \times now)) \circ dstl \circ (id \times out) , i_2 ]}"', from=1-3, to=2-3]
|
||||||
\end{tikzcd}\]
|
\end{tikzcd}\]
|
||||||
\item[\ref{S4}] To show $D\alpha \circ \tau = \tau \circ (id \times \tau) \circ \alpha$ by coinduction we take the coalgebra:
|
\item[\ref{S4}] To show $D\alpha \circ \tau = \tau \circ (id \times \tau) \circ \alpha$ by coinduction we take the coalgebra:
|
||||||
% https://q.uiver.app/#q=WzAsNixbMCwwLCIoWCBcXHRpbWVzIFkpIFxcdGltZXMgRFoiXSxbMCwyLCJEKFggXFx0aW1lcyBZIFxcdGltZXMgWikiXSxbMiwyLCJYIFxcdGltZXMgWSBcXHRpbWVzIFogKyBEKFggXFx0aW1lcyBZIFxcdGltZXMgWikiXSxbMiwxLCJYIFxcdGltZXMgWSAgXFx0aW1lcyBaICsgKFggXFx0aW1lcyBZKSBcXHRpbWVzIERaIl0sWzEsMCwiKFggXFx0aW1lcyBZKSBcXHRpbWVzIChaKyBEWikiXSxbMiwwLCIoWFxcdGltZXMgWSkgXFx0aW1lcyBaICsgKFggXFx0aW1lcyBZKSBcXHRpbWVzIERaIl0sWzAsMSwiISIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dLFsxLDIsIm91dCJdLFszLDIsImlkICtcXDshIiwyXSxbMCw0LCJpZCBcXHRpbWVzIG91dCJdLFs0LDUsImRzdGwiXSxbNSwzLCJcXGxhbmdsZSBcXHBpXzEgXFxjaXJjIFxccGlfMSAsIFxcbGFuZ2xlIFxccGlfMiBcXGNpcmMgXFxwaV8xICwgXFxwaV8yIFxccmFuZ2xlIFxccmFuZ2xlICsgaWQiLDJdXQ==
|
% https://q.uiver.app/#q=WzAsNixbMCwwLCIoWCBcXHRpbWVzIFkpIFxcdGltZXMgRFoiXSxbMCwyLCJEKFggXFx0aW1lcyBZIFxcdGltZXMgWikiXSxbMiwyLCJYIFxcdGltZXMgWSBcXHRpbWVzIFogKyBEKFggXFx0aW1lcyBZIFxcdGltZXMgWikiXSxbMiwxLCJYIFxcdGltZXMgWSAgXFx0aW1lcyBaICsgKFggXFx0aW1lcyBZKSBcXHRpbWVzIERaIl0sWzEsMCwiKFggXFx0aW1lcyBZKSBcXHRpbWVzIChaKyBEWikiXSxbMiwwLCIoWFxcdGltZXMgWSkgXFx0aW1lcyBaICsgKFggXFx0aW1lcyBZKSBcXHRpbWVzIERaIl0sWzAsMSwiXFxjb2FsZ3stfSIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dLFsxLDIsIm91dCJdLFszLDIsImlkICtcXGNvYWxney19IiwyXSxbMCw0LCJpZCBcXHRpbWVzIG91dCJdLFs0LDUsImRzdGwiXSxbNSwzLCJcXGxhbmdsZSBcXHBpXzEgXFxjaXJjIFxccGlfMSAsIFxcbGFuZ2xlIFxccGlfMiBcXGNpcmMgXFxwaV8xICwgXFxwaV8yIFxccmFuZ2xlIFxccmFuZ2xlICsgaWQiLDJdXQ==
|
||||||
\[\begin{tikzcd}
|
\[\begin{tikzcd}[ampersand replacement=\&]
|
||||||
{(X \times Y) \times DZ} & {(X \times Y) \times (Z+ DZ)} & {(X\times Y) \times Z + (X \times Y) \times DZ} \\
|
{(X \times Y) \times DZ} \& {(X \times Y) \times (Z+ DZ)} \& {(X\times Y) \times Z + (X \times Y) \times DZ} \\
|
||||||
&& {X \times Y \times Z + (X \times Y) \times DZ} \\
|
\&\& {X \times Y \times Z + (X \times Y) \times DZ} \\
|
||||||
{D(X \times Y \times Z)} && {X \times Y \times Z + D(X \times Y \times Z)}
|
{D(X \times Y \times Z)} \&\& {X \times Y \times Z + D(X \times Y \times Z)}
|
||||||
\arrow["{!}", dashed, from=1-1, to=3-1]
|
\arrow["{\coalg{-}}", dashed, from=1-1, to=3-1]
|
||||||
\arrow["out", from=3-1, to=3-3]
|
\arrow["out", from=3-1, to=3-3]
|
||||||
\arrow["{id +\;!}"', from=2-3, to=3-3]
|
\arrow["{id +\coalg{-}}"', from=2-3, to=3-3]
|
||||||
\arrow["{id \times out}", from=1-1, to=1-2]
|
\arrow["{id \times out}", from=1-1, to=1-2]
|
||||||
\arrow["dstl", from=1-2, to=1-3]
|
\arrow["dstl", from=1-2, to=1-3]
|
||||||
\arrow["{\langle \pi_1 \circ \pi_1 , \langle \pi_2 \circ \pi_1 , \pi_2 \rangle \rangle + id}"', from=1-3, to=2-3]
|
\arrow["{\langle \pi_1 \circ \pi_1 , \langle \pi_2 \circ \pi_1 , \pi_2 \rangle \rangle + id}"', from=1-3, to=2-3]
|
||||||
|
@ -317,7 +329,7 @@ Since $(DX, out)$ is a final coalgebra we get the following proof principle:
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{proof}
|
\end{proof}
|
||||||
|
|
||||||
To show that $\mathbf{D}$ is commutative we will use another proof principle previously called the \textit{Solution Theorem}~\cite{sol-thm} or \textit{Parametric Corecursion}~\cite{param-corec}. In our setting this takes the following form:
|
To prove that $\mathbf{D}$ is commutative we will use another proof principle previously called the \textit{Solution Theorem}~\cite{sol-thm} or \textit{Parametric Corecursion}~\cite{param-corec}. In our setting this takes the following form:
|
||||||
|
|
||||||
\begin{definition}
|
\begin{definition}
|
||||||
We call a morphism $g : X \rightarrow D (Y + X)$ \textit{guarded} if there exists an $h : X \rightarrow Y + D(Y+X)$ such that the following diagram commutes:
|
We call a morphism $g : X \rightarrow D (Y + X)$ \textit{guarded} if there exists an $h : X \rightarrow Y + D(Y+X)$ such that the following diagram commutes:
|
||||||
|
@ -342,26 +354,78 @@ To show that $\mathbf{D}$ is commutative we will use another proof principle pre
|
||||||
It suffices to show $[ now , f ]^* = [ now , i ]^*$, because then follows:
|
It suffices to show $[ now , f ]^* = [ now , i ]^*$, because then follows:
|
||||||
\[f = [ now , f ]^* \circ g = [ now , i ]^* \circ g = i\]
|
\[f = [ now , f ]^* \circ g = [ now , i ]^* \circ g = i\]
|
||||||
We prove this by coinduction using:
|
We prove this by coinduction using:
|
||||||
\change[inline]{Change name of morphism}
|
% https://q.uiver.app/#q=WzAsNSxbMCwxLCJEWSJdLFszLDEsIlkgKyBEWSJdLFswLDAsIkQoWSArIFgpIl0sWzEsMCwiKFkgKyBYKSArIEQoWStYKSJdLFszLDAsIlkgKyBEKFkrWCkiXSxbMCwxLCJvdXQiXSxbMiwzLCJvdXQiXSxbMyw0LCJbIFsgaV8xICwgaCBdICwgaV8yIF0iXSxbNCwxLCJpZCArIFxcY29hbGd7LX0iXSxbMiwwLCJcXGNvYWxney19IiwwLHsic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fV1d
|
||||||
% https://q.uiver.app/#q=WzAsNSxbMCwxLCJEWSJdLFszLDEsIlkgKyBEWSJdLFswLDAsIkQoWSArIFgpIl0sWzEsMCwiKFkgKyBYKSArIEQoWStYKSJdLFszLDAsIlkgKyBEKFkrWCkiXSxbMCwxLCJvdXQiXSxbMiwzLCJvdXQiXSxbMyw0LCJbIFsgaV8xICwgaCBdICwgaV8yIF0iXSxbNCwxLCJpZCArIFxcOyEiXSxbMiwwLCIhIiwwLHsic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fV1d
|
|
||||||
\[\begin{tikzcd}[ampersand replacement=\&]
|
\[\begin{tikzcd}[ampersand replacement=\&]
|
||||||
{D(Y + X)} \& {(Y + X) + D(Y+X)} \&\& {Y + D(Y+X)} \\
|
{D(Y + X)} \& {(Y + X) + D(Y+X)} \&\& {Y + D(Y+X)} \\
|
||||||
DY \&\&\& {Y + DY}
|
DY \&\&\& {Y + DY}
|
||||||
\arrow["out", from=2-1, to=2-4]
|
\arrow["out", from=2-1, to=2-4]
|
||||||
\arrow["out", from=1-1, to=1-2]
|
\arrow["out", from=1-1, to=1-2]
|
||||||
\arrow["{[ [ i_1 , h ] , i_2 ]}", from=1-2, to=1-4]
|
\arrow["{[ [ i_1 , h ] , i_2 ]}", from=1-2, to=1-4]
|
||||||
\arrow["{id + \;!}", from=1-4, to=2-4]
|
\arrow["{id + \coalg{-}}", from=1-4, to=2-4]
|
||||||
\arrow["{!}", dashed, from=1-1, to=2-1]
|
\arrow["{\coalg{-}}", dashed, from=1-1, to=2-1]
|
||||||
\end{tikzcd}\]
|
\end{tikzcd}\]
|
||||||
\end{proof}
|
\end{proof}
|
||||||
|
|
||||||
|
Let us record some facts that we will use to prove commutativity of $\mathbf{D}$:
|
||||||
|
|
||||||
|
\begin{corollary}
|
||||||
|
The following two properties hold:
|
||||||
|
\begin{alignat*}{1}
|
||||||
|
&out \circ Df = (f + Df) \circ out
|
||||||
|
\\&later \circ f^* = (later \circ f)^* = f^* \circ later
|
||||||
|
\end{alignat*}
|
||||||
|
|
||||||
|
As well as these properties of $\tau$ and $\sigma$:
|
||||||
|
\begin{alignat*}{2}
|
||||||
|
& out \circ \tau & & = (id + \tau) \circ dstl \circ (id \times out)\tag*{($\tau_1$)}\label{tau1}
|
||||||
|
\\&out \circ \sigma &&= (id + \sigma) \circ dstr \circ (out \times id)\tag*{($\sigma_1$)}\label{sigma1}
|
||||||
|
\\&\tau \circ (id \times out^{-1}) &&= out^{-1} \circ (id + \tau) \circ dstl\tag*{($\tau_2$)}\label{tau2}
|
||||||
|
\\& \sigma \circ (out^{-1} \times id) &&= out^{-1} \circ (id + \sigma) \circ dstr\tag*{($\sigma_2$)}\label{sigma2}
|
||||||
|
\end{alignat*}
|
||||||
|
\end{corollary}
|
||||||
|
|
||||||
|
\begin{proof}
|
||||||
|
Let us start with the first two properties:
|
||||||
|
|
||||||
|
\begin{alignat*}{1}
|
||||||
|
&out \circ Df
|
||||||
|
\\=\;&out \circ (now \circ f)^*
|
||||||
|
\\=\;&[ out \circ now \circ f , i_2 \circ (now \circ f)^* ] \circ out\tag*{\ref{D2}}
|
||||||
|
\\=\;&(f + Df) \circ out\tag*{\ref{D1}}
|
||||||
|
\end{alignat*}
|
||||||
|
|
||||||
|
\begin{alignat*}{1}
|
||||||
|
&(later \circ f)^*
|
||||||
|
% ... TODO
|
||||||
|
\\=\;&later \circ f^*
|
||||||
|
% ... TODO
|
||||||
|
\\=\;&f^* \circ later
|
||||||
|
\end{alignat*}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item[\ref{tau1}] This is just \ref{D3} restated.
|
||||||
|
\item[\ref{sigma1}]
|
||||||
|
\todo[inline]{What to do about out-law?}
|
||||||
|
\begin{alignat*}{1}
|
||||||
|
& out \circ Dswap \circ \tau \circ swap
|
||||||
|
\\=\;&(swap + Dswap) \circ out \circ \tau \circ swap
|
||||||
|
\\=\;&(swap + Dswap) \circ (id + \tau) \circ dstl \circ (id \times out) \circ swap \tag*{\ref{tau1}}
|
||||||
|
\\=\;&(swap + Dswap) \circ (id + \tau) \circ dstl \circ swap \circ (out \times id)
|
||||||
|
\\=\;&(swap + Dswap) \circ (id + \tau) \circ (swap + swap) \circ dstr \circ (out \times id)
|
||||||
|
\\=\;&(id + \sigma) \circ dstr \circ (out \times id)
|
||||||
|
\end{alignat*}
|
||||||
|
\item[\ref{tau2}]
|
||||||
|
\item[\ref{sigma2}]
|
||||||
|
\end{itemize}
|
||||||
|
\end{proof}
|
||||||
|
|
||||||
\begin{theorem}
|
\begin{theorem}
|
||||||
$\mathbf{D}$ is commutative.
|
$\mathbf{D}$ is commutative.
|
||||||
\end{theorem}
|
\end{theorem}
|
||||||
\begin{proof}
|
\begin{proof}
|
||||||
Using corollary~\ref{cor:solution} it suffices to show that both $\tau^* \circ \sigma$ and $\sigma^* \circ \tau$ are solutions of some guarded morphism $g$.
|
Using corollary~\ref{cor:solution} it suffices to show that both $\tau^* \circ \sigma$ and $\sigma^* \circ \tau$ are solutions of some guarded morphism $g$.
|
||||||
|
|
||||||
Let $w = (dstr + dstr) \circ dstl \circ (out \times out)$ and
|
Let $w = (dstr + dstr) \circ dstl \circ (out \times out)$ and take
|
||||||
\[g = out^{-1} \circ [ i_1 + D i_1 \circ \sigma , i_2 \circ [ D i_1 \circ \tau , later \circ now \circ i_2 ] ] \circ w\]
|
\[g = out^{-1} \circ [ i_1 + D i_1 \circ \sigma , i_2 \circ [ D i_1 \circ \tau , later \circ now \circ i_2 ] ] \circ w\]
|
||||||
$g$ is trivially guarded by $[ id + D i_1 \circ \sigma , i_2 \circ [ D i_1 \circ \tau , later \circ now \circ i_2 ] ] \circ w$.
|
$g$ is trivially guarded by $[ id + D i_1 \circ \sigma , i_2 \circ [ D i_1 \circ \tau , later \circ now \circ i_2 ] ] \circ w$.
|
||||||
|
|
||||||
|
@ -370,19 +434,65 @@ To show that $\mathbf{D}$ is commutative we will use another proof principle pre
|
||||||
\[\tau^* \circ \sigma = out^{-1} \circ [ id + \sigma , i_2 \circ [ \tau , later \circ \tau^* \circ \sigma ] ] \circ w = [ now , \tau^* \circ \sigma]^* \circ g \]
|
\[\tau^* \circ \sigma = out^{-1} \circ [ id + \sigma , i_2 \circ [ \tau , later \circ \tau^* \circ \sigma ] ] \circ w = [ now , \tau^* \circ \sigma]^* \circ g \]
|
||||||
\[\sigma^* \circ \tau = out^{-1} \circ [ id + \sigma , i_2 \circ [ \tau , later \circ \sigma^* \circ \tau ] ] \circ w = [ now , \sigma^* \circ \tau]^* \circ g \]
|
\[\sigma^* \circ \tau = out^{-1} \circ [ id + \sigma , i_2 \circ [ \tau , later \circ \sigma^* \circ \tau ] ] \circ w = [ now , \sigma^* \circ \tau]^* \circ g \]
|
||||||
|
|
||||||
\change[inline]{Make this more explicit}
|
The last step in both equations holds generally for any $f : DX \times DY \rightarrow D(X \times Y)$ by monicity of $out$:
|
||||||
|
\begin{alignat*}{1}
|
||||||
|
& out \circ [ now , f ]^* \circ out^{-1} \circ [ i_1 + D i_1 \circ \sigma , i_2 \circ [ D i_1 \circ \tau , later \circ now \circ i_2 ] ] \circ w \\
|
||||||
|
=\; & [ out \circ [ now , f ] , i_2 \circ [ now , f ]^* ] \circ [ i_1 + D i_1 \circ \sigma , i_2 \circ [ D i_1 \circ \tau , later \circ now \circ i_2 ] ] \circ w\tag*{\ref{D2}} \\
|
||||||
|
=\; & [ id + \sigma , i_2 \circ [ now , f]^* \circ [ D i_1 \circ \tau , later \circ now \circ i_2 ] ] \circ w\tag*{\ref{D1}} \\
|
||||||
|
=\; & [ id + \sigma , i_2 \circ [ \tau , [ now , f]^* \circ later \circ now \circ i_2 ] ] \circ w \\
|
||||||
|
=\; & [ id + \sigma , i_2 \circ [ \tau , [ later \circ now , later \circ f]^* \circ now \circ i_2 ] ] \circ w \\
|
||||||
|
=\; & [ id + \sigma , i_2 \circ [ \tau , later \circ f ] ] \circ w
|
||||||
|
\end{alignat*}
|
||||||
|
|
||||||
|
\todo[inline]{The second to last step uses that $f^* \circ later = (later \circ f)^*$ this should be proven somewhere and referenced here.}
|
||||||
|
\todo[inline]{The fact that $f^* \circ Dg = (f \circ g)^*$ should be mentioned somewhere (in preliminaries!)}
|
||||||
|
|
||||||
|
\change[inline]{Move this remark to the beginning of proof}
|
||||||
The first step in both equations can be proven by monicity of $out$ and then using \ref{D3} and the dual diagram for $\sigma$ which is a direct consequence of \ref{D3}:
|
The first step in both equations can be proven by monicity of $out$ and then using \ref{D3} and the dual diagram for $\sigma$ which is a direct consequence of \ref{D3}:
|
||||||
% https://q.uiver.app/#q=WzAsNSxbMCwwLCJYIFxcdGltZXMgRFkiXSxbMCwxLCJEKFggXFx0aW1lcyBZKSJdLFs0LDAsIlggXFx0aW1lcyBZICsgWCBcXHRpbWVzIERZIl0sWzQsMSwiWCBcXHRpbWVzIFkgK0QoWCBcXHRpbWVzIFkpIl0sWzIsMCwiWCBcXHRpbWVzIChZICsgRFkpIl0sWzAsMSwiXFxoYXR7XFx0YXV9IiwwLHsic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fV0sWzEsMywib3V0Il0sWzIsMywiaWQgKyBcXGhhdHtcXHRhdX0iLDJdLFswLDQsImlkIFxcdGltZXMgb3V0Il0sWzQsMiwiZHN0bCJdXQ==
|
% https://q.uiver.app/#q=WzAsNSxbMCwwLCJYIFxcdGltZXMgRFkiXSxbMCwxLCJEKFggXFx0aW1lcyBZKSJdLFs0LDAsIlggXFx0aW1lcyBZICsgWCBcXHRpbWVzIERZIl0sWzQsMSwiWCBcXHRpbWVzIFkgK0QoWCBcXHRpbWVzIFkpIl0sWzIsMCwiWCBcXHRpbWVzIChZICsgRFkpIl0sWzAsMSwiXFxzaWdtYSJdLFsxLDMsIm91dCJdLFsyLDMsImlkICsgXFxoYXR7XFx0YXV9IiwyXSxbMCw0LCJpZCBcXHRpbWVzIG91dCJdLFs0LDIsImRzdGwiXV0=
|
||||||
\[\begin{tikzcd}[ampersand replacement=\&]
|
\[\begin{tikzcd}[ampersand replacement=\&]
|
||||||
{X \times DY} \&\& {X \times (Y + DY)} \&\& {X \times Y + X \times DY} \\
|
{X \times DY} \&\& {X \times (Y + DY)} \&\& {X \times Y + X \times DY} \\
|
||||||
{D(X \times Y)} \&\&\&\& {X \times Y +D(X \times Y)}
|
{D(X \times Y)} \&\&\&\& {X \times Y +D(X \times Y)}
|
||||||
\arrow["{\sigma}", dashed, from=1-1, to=2-1]
|
\arrow["\sigma", from=1-1, to=2-1]
|
||||||
\arrow["out", from=2-1, to=2-5]
|
\arrow["out", from=2-1, to=2-5]
|
||||||
\arrow["{id + \sigma}"', from=1-5, to=2-5]
|
\arrow["{id + \hat{\tau}}"', from=1-5, to=2-5]
|
||||||
\arrow["{id \times out}", from=1-1, to=1-3]
|
\arrow["{id \times out}", from=1-1, to=1-3]
|
||||||
\arrow["dstl", from=1-3, to=1-5]
|
\arrow["dstl", from=1-3, to=1-5]
|
||||||
\end{tikzcd}\]
|
\end{tikzcd}\]
|
||||||
the last step holds generally for any $f : DX \times DY \rightarrow D(X \times Y)$.
|
|
||||||
|
Let us now check the first step in the equation for $\sigma^* \circ \tau$, the same step for $\tau^* \circ \sigma$ is then symmetric.
|
||||||
|
|
||||||
|
Again we proceed by monicity of $out$:
|
||||||
|
\begin{alignat*}{1}
|
||||||
|
& out \circ \sigma^* \circ \tau
|
||||||
|
\\=\;&[ out \circ \sigma , i_2 \circ \sigma^* ] \circ out \circ \tau\tag*{\ref{D2}}
|
||||||
|
\\=\;&[ out \circ \sigma , i_2 \circ \sigma^* ] \circ (id + \tau) \circ dstl \circ (id \times out)\tag*{\ref{D3}}
|
||||||
|
\\=\;&[ (id + \sigma) \circ dstr \circ (out \times id) , i_2 \circ \sigma^* \circ \tau ] \circ dstl \circ (id \times out)\tag*{(outsigma)}
|
||||||
|
\\=\;&[ (id + \sigma) \circ dstr \circ (out \times id) , i_2 \circ \sigma^* \circ \tau ] \circ ((out^{-1} \times id) + (out^{-1} \times id)) \circ dstl \circ (out \times out)
|
||||||
|
\\=\;&[ (id + \sigma) \circ dstr, i_2 \circ \sigma^* \circ \tau \circ (out^{-1} \times id)] \circ dstl \circ (out \times out)
|
||||||
|
\\=\;&[ (id + \sigma) \circ dstr, i_2 \circ \sigma^* \circ D(out^{-1} \times id) \circ \tau] \circ dstl \circ (out \times out)
|
||||||
|
\\=\;&[ (id + \sigma) \circ dstr, i_2 \circ (\sigma \times (out^{-1} \times id))^* \circ \tau] \circ dstl \circ (out \times out)
|
||||||
|
\\=\;&[ (id + \sigma) \circ dstr, i_2 \circ (out^{-1} \circ (id + \sigma) \circ dstr)^* \circ \tau] \circ dstl \circ (out \times out)\tag*{($\sigma$)}
|
||||||
|
\\=\;&[ (id + \sigma) \circ dstr, i_2 \circ (out^{-1} \circ (id + \sigma))^* \circ Ddstr \circ \tau] \circ dstl \circ (out \times out)
|
||||||
|
\\=\;&[ (id + \sigma) \circ dstr, i_2 \circ (out^{-1} \circ (id + \sigma))^* \circ [D i_1 \circ \tau , D i_2 \circ \tau] \circ dstr] \circ dstl \circ (out \times out)\tag*{\ref{Dcomm-helper}}
|
||||||
|
\\=\;&[ (id + \sigma), i_2 \circ (out^{-1} \circ (id + \sigma))^* \circ [D i_1 \circ \tau , D i_2 \circ \tau]] \circ (dstr + dstr) \circ dstl \circ (out \times out)
|
||||||
|
\\=\;&[ (id + \sigma), i_2 \circ [(out^{-1} \circ i_1)^* \circ \tau , (out^{-1} \circ i_2 \circ \sigma)^* \circ \tau]] \circ w
|
||||||
|
\\=\;&[ (id + \sigma), i_2 \circ [ \tau , (later \circ \sigma)^* \circ \tau]] \circ w \tag*{\ref{K1}}
|
||||||
|
\\=\;&[ (id + \sigma), i_2 \circ [ \tau , later \circ \sigma^* \circ \tau]] \circ w \tag*{(later)}
|
||||||
|
\end{alignat*}
|
||||||
|
|
||||||
|
where
|
||||||
|
\[Ddstr \circ \tau = [ Di_1 \circ \tau , Di_2 \circ \tau ] \circ dstr \tag*{(*)}\label{Dcomm-helper}\]
|
||||||
|
follows by the fact that $dstr^{-1}$ is epic:
|
||||||
|
|
||||||
|
\begin{alignat*}{1}
|
||||||
|
& Ddstr \circ \tau \circ dstr^{-1}
|
||||||
|
\\=\;&[ Ddstr \circ \tau \circ (i_1 \times id) , Ddstr \circ \tau \circ (i_2 \times id) ]
|
||||||
|
\\=\;&[ Ddstr \circ D(i_1 \times id) \circ \tau , Ddstr \circ D(i_2 \times id) \circ \tau ]
|
||||||
|
\\=\;&[ Di_1 \circ \tau , Di_2 \circ \tau ]
|
||||||
|
\end{alignat*}
|
||||||
|
\todo[inline]{Add $dstl-i_1$ etc. to preliminaries as corollary!}
|
||||||
|
|
||||||
\end{proof}
|
\end{proof}
|
||||||
|
|
||||||
\improvement[inline]{Elaborate more?}
|
\improvement[inline]{Elaborate more?}
|
||||||
|
|
|
@ -111,6 +111,7 @@ In this section we will study the monad that arises from existence of all free E
|
||||||
If every $X \in \obj{\C}$ extends to a free Elgot algebra $KX$ we get a monad $\mathbf{K}$.
|
If every $X \in \obj{\C}$ extends to a free Elgot algebra $KX$ we get a monad $\mathbf{K}$.
|
||||||
\end{lemma}
|
\end{lemma}
|
||||||
\begin{proof}
|
\begin{proof}
|
||||||
|
\todo[inline]{Maybe this can even be proven without adjunction, show that free objects yield a Kleisli triple!}
|
||||||
\todo[inline]{Proof in preliminaries}
|
\todo[inline]{Proof in preliminaries}
|
||||||
Existence of all free objects in $\elgotalgs{\C}$ yields an adjunction between $\C$ and $\elgotalgs{\C}$ that in turn gives us a monad on $\C$.
|
Existence of all free objects in $\elgotalgs{\C}$ yields an adjunction between $\C$ and $\elgotalgs{\C}$ that in turn gives us a monad on $\C$.
|
||||||
\end{proof}
|
\end{proof}
|
||||||
|
|
Loading…
Reference in a new issue