bsc-leon-vatthauer/public/Monad.ElgotMonad.md

148 lines
No EOL
115 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
<pre class="Agda"><a id="14" class="Symbol">{-#</a> <a id="18" class="Keyword">OPTIONS</a> <a id="26" class="Pragma">--allow-unsolved-metas</a> <a id="49" class="Symbol">#-}</a>
<a id="54" class="Keyword">open</a> <a id="59" class="Keyword">import</a> <a id="66" href="Level.html" class="Module">Level</a>
<a id="72" class="Keyword">open</a> <a id="77" class="Keyword">import</a> <a id="84" href="Categories.Category.Core.html" class="Module">Categories.Category.Core</a>
<a id="109" class="Keyword">open</a> <a id="114" class="Keyword">import</a> <a id="121" href="Categories.Category.Extensive.Bundle.html" class="Module">Categories.Category.Extensive.Bundle</a>
<a id="158" class="Keyword">open</a> <a id="163" class="Keyword">import</a> <a id="170" href="Categories.Category.BinaryProducts.html" class="Module">Categories.Category.BinaryProducts</a>
<a id="205" class="Keyword">open</a> <a id="210" class="Keyword">import</a> <a id="217" href="Categories.Category.Cocartesian.html" class="Module">Categories.Category.Cocartesian</a>
<a id="249" class="Keyword">open</a> <a id="254" class="Keyword">import</a> <a id="261" href="Categories.Category.Cartesian.html" class="Module">Categories.Category.Cartesian</a>
<a id="291" class="Keyword">open</a> <a id="296" class="Keyword">import</a> <a id="303" href="Categories.Category.Extensive.html" class="Module">Categories.Category.Extensive</a>
<a id="333" class="Keyword">open</a> <a id="338" class="Keyword">import</a> <a id="345" href="Categories.Monad.html" class="Module">Categories.Monad</a>
<a id="362" class="Keyword">open</a> <a id="367" class="Keyword">import</a> <a id="374" href="Categories.Functor.html" class="Module">Categories.Functor</a>
<a id="393" class="Keyword">open</a> <a id="398" class="Keyword">import</a> <a id="405" href="ElgotAlgebra.html" class="Module">ElgotAlgebra</a>
<a id="419" class="Keyword">import</a> <a id="426" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="456" class="Symbol">as</a> <a id="459" class="Module">MR</a>
</pre>-->
## Summary
This file introduces Elgot Monads.
- [X] *Definition 13* Pre-Elgot Monads
- [ ] *Definition 13* strong pre-Elgot
- [X] *Definition 14* Elgot Monads
- [ ] *Definition 14* strong Elgot
- [ ] *Proposition 15* (Strong) Elgot monads are (strong) pre-Elgot
## Code
<pre class="Agda"><a id="752" class="Keyword">module</a> <a id="759" href="Monad.ElgotMonad.html" class="Module">Monad.ElgotMonad</a> <a id="776" class="Symbol">{</a><a id="777" href="Monad.ElgotMonad.html#777" class="Bound">o</a> <a id="779" href="Monad.ElgotMonad.html#779" class="Bound"></a> <a id="781" href="Monad.ElgotMonad.html#781" class="Bound">e</a><a id="782" class="Symbol">}</a> <a id="784" class="Symbol">(</a><a id="785" href="Monad.ElgotMonad.html#785" class="Bound">ED</a> <a id="788" class="Symbol">:</a> <a id="790" href="Categories.Category.Extensive.Bundle.html#781" class="Record">ExtensiveDistributiveCategory</a> <a id="820" href="Monad.ElgotMonad.html#777" class="Bound">o</a> <a id="822" href="Monad.ElgotMonad.html#779" class="Bound"></a> <a id="824" href="Monad.ElgotMonad.html#781" class="Bound">e</a><a id="825" class="Symbol">)</a> <a id="827" class="Keyword">where</a>
<a id="835" class="Keyword">open</a> <a id="840" href="Categories.Category.Extensive.Bundle.html#781" class="Module">ExtensiveDistributiveCategory</a> <a id="870" href="Monad.ElgotMonad.html#785" class="Bound">ED</a> <a id="873" class="Keyword">renaming</a> <a id="882" class="Symbol">(</a><a id="883" href="Categories.Category.Extensive.Bundle.html#859" class="Field">U</a> <a id="885" class="Symbol">to</a> <a id="888" class="Field">C</a><a id="889" class="Symbol">;</a> <a id="891" href="Categories.Category.Core.html#630" class="Function">id</a> <a id="894" class="Symbol">to</a> <a id="897" class="Function">idC</a><a id="900" class="Symbol">)</a>
<a id="904" class="Keyword">open</a> <a id="909" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="924" class="Keyword">open</a> <a id="929" href="Categories.Category.Cocartesian.html#3385" class="Module">Cocartesian</a> <a id="941" class="Symbol">(</a><a id="942" href="Categories.Category.Extensive.html#734" class="Field">Extensive.cocartesian</a> <a id="964" href="Categories.Category.Extensive.Bundle.html#913" class="Field">extensive</a><a id="973" class="Symbol">)</a>
<a id="977" class="Keyword">open</a> <a id="982" href="Categories.Category.Cartesian.html#727" class="Module">Cartesian</a> <a id="992" class="Symbol">(</a><a id="993" href="Categories.Category.Extensive.Bundle.html#943" class="Field">ExtensiveDistributiveCategory.cartesian</a> <a id="1033" href="Monad.ElgotMonad.html#785" class="Bound">ED</a><a id="1035" class="Symbol">)</a>
<a id="1039" class="Keyword">open</a> <a id="1044" href="Categories.Category.BinaryProducts.html#812" class="Module">BinaryProducts</a> <a id="1059" href="Categories.Category.Cartesian.html#801" class="Function">products</a> <a id="1068" class="Keyword">hiding</a> <a id="1075" class="Symbol">(</a><a id="1076" href="Categories.Object.Product.Core.html#797" class="Function">η</a><a id="1077" class="Symbol">)</a>
<a id="1081" class="Keyword">open</a> <a id="1086" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="1089" href="Monad.ElgotMonad.html#888" class="Field">C</a>
<a id="1093" class="Keyword">open</a> <a id="1098" href="Categories.Category.Core.html#1530" class="Module">Equiv</a>
</pre>
### *Definition 13*: Pre-Elgot Monads
<pre class="Agda"> <a id="1158" class="Keyword">record</a> <a id="IsPreElgot"></a><a id="1165" href="Monad.ElgotMonad.html#1165" class="Record">IsPreElgot</a> <a id="1176" class="Symbol">(</a><a id="1177" href="Monad.ElgotMonad.html#1177" class="Bound">T</a> <a id="1179" class="Symbol">:</a> <a id="1181" href="Categories.Monad.html#454" class="Record">Monad</a> <a id="1187" href="Monad.ElgotMonad.html#888" class="Field">C</a><a id="1188" class="Symbol">)</a> <a id="1190" class="Symbol">:</a> <a id="1192" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1196" class="Symbol">(</a><a id="1197" href="Monad.ElgotMonad.html#777" class="Bound">o</a> <a id="1199" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1201" href="Monad.ElgotMonad.html#779" class="Bound"></a> <a id="1203" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1205" href="Monad.ElgotMonad.html#781" class="Bound">e</a><a id="1206" class="Symbol">)</a> <a id="1208" class="Keyword">where</a>
<a id="1218" class="Keyword">open</a> <a id="1223" href="Categories.Monad.html#454" class="Module">Monad</a> <a id="1229" href="Monad.ElgotMonad.html#1177" class="Bound">T</a>
<a id="1235" class="Keyword">open</a> <a id="1240" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1248" href="Categories.Monad.html#525" class="Function">F</a> <a id="1250" class="Keyword">renaming</a> <a id="1259" class="Symbol">(</a><a id="1260" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1263" class="Symbol">to</a> <a id="1266" class="Field">T₀</a><a id="1268" class="Symbol">;</a> <a id="1270" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="1273" class="Symbol">to</a> <a id="1276" class="Field">T₁</a><a id="1278" class="Symbol">)</a>
<a id="1285" class="Comment">-- every TX needs to be equipped with an elgot algebra structure</a>
<a id="1354" class="Keyword">field</a>
<a id="IsPreElgot.elgotalgebras"></a><a id="1366" href="Monad.ElgotMonad.html#1366" class="Field">elgotalgebras</a> <a id="1380" class="Symbol">:</a> <a id="1382" class="Symbol"></a> <a id="1384" class="Symbol">{</a><a id="1385" href="Monad.ElgotMonad.html#1385" class="Bound">X</a><a id="1386" class="Symbol">}</a> <a id="1388" class="Symbol"></a> <a id="1390" href="ElgotAlgebra.html#2093" class="Record">Elgot-Algebra-on</a> <a id="1407" href="Monad.ElgotMonad.html#785" class="Bound">ED</a> <a id="1410" class="Symbol">(</a><a id="1411" href="Monad.ElgotMonad.html#1266" class="Function">T₀</a> <a id="1414" href="Monad.ElgotMonad.html#1385" class="Bound">X</a><a id="1415" class="Symbol">)</a>
<a id="1422" class="Keyword">module</a> <a id="IsPreElgot.elgotalgebras"></a><a id="1429" href="Monad.ElgotMonad.html#1429" class="Module">elgotalgebras</a> <a id="1443" class="Symbol">{</a><a id="1444" href="Monad.ElgotMonad.html#1444" class="Bound">X</a><a id="1445" class="Symbol">}</a> <a id="1447" class="Symbol">=</a> <a id="1449" href="ElgotAlgebra.html#2093" class="Module">Elgot-Algebra-on</a> <a id="1466" class="Symbol">(</a><a id="1467" href="Monad.ElgotMonad.html#1366" class="Field">elgotalgebras</a> <a id="1481" class="Symbol">{</a><a id="1482" href="Monad.ElgotMonad.html#1444" class="Bound">X</a><a id="1483" class="Symbol">})</a>
<a id="1491" class="Comment">-- with the following associativity</a>
<a id="1531" class="Keyword">field</a>
<a id="IsPreElgot.assoc"></a><a id="1543" href="Monad.ElgotMonad.html#1543" class="Field">assoc</a> <a id="1549" class="Symbol">:</a> <a id="1551" class="Symbol"></a> <a id="1553" class="Symbol">{</a><a id="1554" href="Monad.ElgotMonad.html#1554" class="Bound">X</a> <a id="1556" href="Monad.ElgotMonad.html#1556" class="Bound">Y</a> <a id="1558" href="Monad.ElgotMonad.html#1558" class="Bound">Z</a><a id="1559" class="Symbol">}</a> <a id="1561" class="Symbol">(</a><a id="1562" href="Monad.ElgotMonad.html#1562" class="Bound">f</a> <a id="1564" class="Symbol">:</a> <a id="1566" href="Monad.ElgotMonad.html#1558" class="Bound">Z</a> <a id="1568" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="1570" href="Monad.ElgotMonad.html#1266" class="Function">T₀</a> <a id="1573" href="Monad.ElgotMonad.html#1554" class="Bound">X</a> <a id="1575" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="1577" href="Monad.ElgotMonad.html#1558" class="Bound">Z</a><a id="1578" class="Symbol">)</a> <a id="1580" class="Symbol">(</a><a id="1581" href="Monad.ElgotMonad.html#1581" class="Bound">h</a> <a id="1583" class="Symbol">:</a> <a id="1585" href="Monad.ElgotMonad.html#1554" class="Bound">X</a> <a id="1587" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="1589" href="Monad.ElgotMonad.html#1266" class="Function">T₀</a> <a id="1592" href="Monad.ElgotMonad.html#1556" class="Bound">Y</a><a id="1593" class="Symbol">)</a>
<a id="1604" class="Symbol"></a> <a id="1606" href="ElgotAlgebra.html#2186" class="Function Operator">elgotalgebras._#</a> <a id="1623" class="Symbol">(((</a><a id="1626" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1630" class="Symbol">_</a> <a id="1632" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1634" href="Monad.ElgotMonad.html#1276" class="Function">T₁</a> <a id="1637" href="Monad.ElgotMonad.html#1581" class="Bound">h</a><a id="1638" class="Symbol">)</a> <a id="1640" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="1643" href="Monad.ElgotMonad.html#897" class="Function">idC</a><a id="1646" class="Symbol">)</a> <a id="1648" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1650" href="Monad.ElgotMonad.html#1562" class="Bound">f</a><a id="1651" class="Symbol">)</a> <a id="1653" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="1655" class="Symbol">(</a><a id="1656" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="1660" class="Symbol">_</a> <a id="1662" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1664" href="Monad.ElgotMonad.html#1276" class="Function">T₁</a> <a id="1667" href="Monad.ElgotMonad.html#1581" class="Bound">h</a><a id="1668" class="Symbol">)</a> <a id="1670" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1672" class="Symbol">(</a><a id="1673" href="ElgotAlgebra.html#2186" class="Function Operator">elgotalgebras._#</a> <a id="1690" class="Symbol">{</a><a id="1691" href="Monad.ElgotMonad.html#1554" class="Bound">X</a><a id="1692" class="Symbol">})</a> <a id="1695" href="Monad.ElgotMonad.html#1562" class="Bound">f</a>
<a id="1702" class="Keyword">record</a> <a id="PreElgotMonad"></a><a id="1709" href="Monad.ElgotMonad.html#1709" class="Record">PreElgotMonad</a> <a id="1723" class="Symbol">:</a> <a id="1725" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1729" class="Symbol">(</a><a id="1730" href="Monad.ElgotMonad.html#777" class="Bound">o</a> <a id="1732" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1734" href="Monad.ElgotMonad.html#779" class="Bound"></a> <a id="1736" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1738" href="Monad.ElgotMonad.html#781" class="Bound">e</a><a id="1739" class="Symbol">)</a> <a id="1741" class="Keyword">where</a>
<a id="1751" class="Keyword">field</a>
<a id="PreElgotMonad.T"></a><a id="1763" href="Monad.ElgotMonad.html#1763" class="Field">T</a> <a id="1765" class="Symbol">:</a> <a id="1767" href="Categories.Monad.html#454" class="Record">Monad</a> <a id="1773" href="Monad.ElgotMonad.html#888" class="Field">C</a>
<a id="PreElgotMonad.isPreElgot"></a><a id="1781" href="Monad.ElgotMonad.html#1781" class="Field">isPreElgot</a> <a id="1792" class="Symbol">:</a> <a id="1794" href="Monad.ElgotMonad.html#1165" class="Record">IsPreElgot</a> <a id="1805" href="Monad.ElgotMonad.html#1763" class="Field">T</a>
<a id="1812" class="Keyword">open</a> <a id="1817" href="Monad.ElgotMonad.html#1165" class="Module">IsPreElgot</a> <a id="1828" href="Monad.ElgotMonad.html#1781" class="Field">isPreElgot</a> <a id="1839" class="Keyword">public</a>
</pre>### *Definition 14*: Elgot Monads
<pre class="Agda"> <a id="1895" class="Keyword">record</a> <a id="IsElgot"></a><a id="1902" href="Monad.ElgotMonad.html#1902" class="Record">IsElgot</a> <a id="1910" class="Symbol">(</a><a id="1911" href="Monad.ElgotMonad.html#1911" class="Bound">T</a> <a id="1913" class="Symbol">:</a> <a id="1915" href="Categories.Monad.html#454" class="Record">Monad</a> <a id="1921" href="Monad.ElgotMonad.html#888" class="Field">C</a><a id="1922" class="Symbol">)</a> <a id="1924" class="Symbol">:</a> <a id="1926" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1930" class="Symbol">(</a><a id="1931" href="Monad.ElgotMonad.html#777" class="Bound">o</a> <a id="1933" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1935" href="Monad.ElgotMonad.html#779" class="Bound"></a> <a id="1937" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1939" href="Monad.ElgotMonad.html#781" class="Bound">e</a><a id="1940" class="Symbol">)</a> <a id="1942" class="Keyword">where</a>
<a id="1952" class="Keyword">open</a> <a id="1957" href="Categories.Monad.html#454" class="Module">Monad</a> <a id="1963" href="Monad.ElgotMonad.html#1911" class="Bound">T</a>
<a id="1969" class="Keyword">open</a> <a id="1974" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1982" href="Categories.Monad.html#525" class="Function">F</a> <a id="1984" class="Keyword">renaming</a> <a id="1993" class="Symbol">(</a><a id="1994" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1997" class="Symbol">to</a> <a id="2000" class="Field">T₀</a><a id="2002" class="Symbol">;</a> <a id="2004" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2007" class="Symbol">to</a> <a id="2010" class="Field">T₁</a><a id="2012" class="Symbol">)</a>
<a id="2019" class="Comment">-- iteration operator</a>
<a id="2045" class="Keyword">field</a>
<a id="IsElgot._†"></a><a id="2057" href="Monad.ElgotMonad.html#2057" class="Field Operator">_†</a> <a id="2060" class="Symbol">:</a> <a id="2062" class="Symbol"></a> <a id="2064" class="Symbol">{</a><a id="2065" href="Monad.ElgotMonad.html#2065" class="Bound">X</a> <a id="2067" href="Monad.ElgotMonad.html#2067" class="Bound">Y</a><a id="2068" class="Symbol">}</a> <a id="2070" class="Symbol"></a> <a id="2072" href="Monad.ElgotMonad.html#2065" class="Bound">X</a> <a id="2074" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="2076" href="Monad.ElgotMonad.html#2000" class="Function">T₀</a> <a id="2079" class="Symbol">(</a><a id="2080" href="Monad.ElgotMonad.html#2067" class="Bound">Y</a> <a id="2082" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2084" href="Monad.ElgotMonad.html#2065" class="Bound">X</a><a id="2085" class="Symbol">)</a> <a id="2087" class="Symbol"></a> <a id="2089" href="Monad.ElgotMonad.html#2065" class="Bound">X</a> <a id="2091" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="2093" href="Monad.ElgotMonad.html#2000" class="Function">T₀</a> <a id="2096" href="Monad.ElgotMonad.html#2067" class="Bound">Y</a>
<a id="IsElgot.†-resp-≈"></a><a id="2104" href="Monad.ElgotMonad.html#2104" class="Field">†-resp-≈</a> <a id="2113" class="Symbol">:</a> <a id="2115" class="Symbol"></a> <a id="2117" class="Symbol">{</a><a id="2118" href="Monad.ElgotMonad.html#2118" class="Bound">X</a> <a id="2120" href="Monad.ElgotMonad.html#2120" class="Bound">Y</a><a id="2121" class="Symbol">}</a> <a id="2123" class="Symbol">{</a><a id="2124" href="Monad.ElgotMonad.html#2124" class="Bound">f</a> <a id="2126" href="Monad.ElgotMonad.html#2126" class="Bound">g</a> <a id="2128" class="Symbol">:</a> <a id="2130" href="Monad.ElgotMonad.html#2118" class="Bound">X</a> <a id="2132" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="2134" href="Monad.ElgotMonad.html#2000" class="Function">T₀</a> <a id="2137" class="Symbol">(</a><a id="2138" href="Monad.ElgotMonad.html#2120" class="Bound">Y</a> <a id="2140" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2142" href="Monad.ElgotMonad.html#2118" class="Bound">X</a><a id="2143" class="Symbol">)}</a> <a id="2146" class="Symbol"></a> <a id="2148" href="Monad.ElgotMonad.html#2124" class="Bound">f</a> <a id="2150" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="2152" href="Monad.ElgotMonad.html#2126" class="Bound">g</a> <a id="2154" class="Symbol"></a> <a id="2156" href="Monad.ElgotMonad.html#2124" class="Bound">f</a> <a id="2158" href="Monad.ElgotMonad.html#2057" class="Field Operator"></a> <a id="2160" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="2162" href="Monad.ElgotMonad.html#2126" class="Bound">g</a> <a id="2164" href="Monad.ElgotMonad.html#2057" class="Field Operator"></a>
<a id="2171" class="Comment">-- laws</a>
<a id="2183" class="Keyword">field</a>
<a id="IsElgot.Fixpoint"></a><a id="2195" href="Monad.ElgotMonad.html#2195" class="Field">Fixpoint</a> <a id="2204" class="Symbol">:</a> <a id="2206" class="Symbol"></a> <a id="2208" class="Symbol">{</a><a id="2209" href="Monad.ElgotMonad.html#2209" class="Bound">X</a> <a id="2211" href="Monad.ElgotMonad.html#2211" class="Bound">Y</a><a id="2212" class="Symbol">}</a> <a id="2214" class="Symbol">{</a><a id="2215" href="Monad.ElgotMonad.html#2215" class="Bound">f</a> <a id="2217" class="Symbol">:</a> <a id="2219" href="Monad.ElgotMonad.html#2209" class="Bound">X</a> <a id="2221" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="2223" href="Monad.ElgotMonad.html#2000" class="Function">T₀</a> <a id="2226" class="Symbol">(</a><a id="2227" href="Monad.ElgotMonad.html#2211" class="Bound">Y</a> <a id="2229" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2231" href="Monad.ElgotMonad.html#2209" class="Bound">X</a><a id="2232" class="Symbol">)}</a>
<a id="2244" class="Symbol"></a> <a id="2246" href="Monad.ElgotMonad.html#2215" class="Bound">f</a> <a id="2248" href="Monad.ElgotMonad.html#2057" class="Field Operator"></a> <a id="2250" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="2252" class="Symbol">(</a><a id="2253" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="2257" class="Symbol">_</a> <a id="2259" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2261" href="Monad.ElgotMonad.html#2010" class="Function">T₁</a> <a id="2264" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="2266" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="2270" class="Symbol">_</a> <a id="2272" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="2274" href="Monad.ElgotMonad.html#2215" class="Bound">f</a> <a id="2276" href="Monad.ElgotMonad.html#2057" class="Field Operator"></a> <a id="2278" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="2279" class="Symbol">)</a> <a id="2281" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2283" href="Monad.ElgotMonad.html#2215" class="Bound">f</a>
<a id="IsElgot.Naturality"></a><a id="2291" href="Monad.ElgotMonad.html#2291" class="Field">Naturality</a> <a id="2302" class="Symbol">:</a> <a id="2304" class="Symbol"></a> <a id="2306" class="Symbol">{</a><a id="2307" href="Monad.ElgotMonad.html#2307" class="Bound">X</a> <a id="2309" href="Monad.ElgotMonad.html#2309" class="Bound">Y</a> <a id="2311" href="Monad.ElgotMonad.html#2311" class="Bound">Z</a><a id="2312" class="Symbol">}</a> <a id="2314" class="Symbol">{</a><a id="2315" href="Monad.ElgotMonad.html#2315" class="Bound">f</a> <a id="2317" class="Symbol">:</a> <a id="2319" href="Monad.ElgotMonad.html#2307" class="Bound">X</a> <a id="2321" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="2323" href="Monad.ElgotMonad.html#2000" class="Function">T₀</a> <a id="2326" class="Symbol">(</a><a id="2327" href="Monad.ElgotMonad.html#2309" class="Bound">Y</a> <a id="2329" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2331" href="Monad.ElgotMonad.html#2307" class="Bound">X</a><a id="2332" class="Symbol">)}</a> <a id="2335" class="Symbol">{</a><a id="2336" href="Monad.ElgotMonad.html#2336" class="Bound">g</a> <a id="2338" class="Symbol">:</a> <a id="2340" href="Monad.ElgotMonad.html#2309" class="Bound">Y</a> <a id="2342" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="2344" href="Monad.ElgotMonad.html#2000" class="Function">T₀</a> <a id="2347" href="Monad.ElgotMonad.html#2311" class="Bound">Z</a><a id="2348" class="Symbol">}</a>
<a id="2359" class="Symbol"></a> <a id="2361" class="Symbol">(</a><a id="2362" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="2366" class="Symbol">_</a> <a id="2368" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2370" href="Monad.ElgotMonad.html#2010" class="Function">T₁</a> <a id="2373" href="Monad.ElgotMonad.html#2336" class="Bound">g</a><a id="2374" class="Symbol">)</a> <a id="2376" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2378" href="Monad.ElgotMonad.html#2315" class="Bound">f</a> <a id="2380" href="Monad.ElgotMonad.html#2057" class="Field Operator"></a> <a id="2382" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="2384" class="Symbol">((</a><a id="2386" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="2390" class="Symbol">_</a> <a id="2392" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2394" href="Monad.ElgotMonad.html#2010" class="Function">T₁</a> <a id="2397" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="2399" class="Symbol">(</a><a id="2400" href="Monad.ElgotMonad.html#2010" class="Function">T₁</a> <a id="2403" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="2405" class="Symbol">)</a> <a id="2407" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2409" href="Monad.ElgotMonad.html#2336" class="Bound">g</a> <a id="2411" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="2413" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="2417" class="Symbol">_</a> <a id="2419" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2421" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="2424" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="2425" class="Symbol">)</a> <a id="2427" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2429" href="Monad.ElgotMonad.html#2315" class="Bound">f</a><a id="2430" class="Symbol">)</a><a id="2431" href="Monad.ElgotMonad.html#2057" class="Field Operator"></a>
<a id="IsElgot.Codiagonal"></a><a id="2439" href="Monad.ElgotMonad.html#2439" class="Field">Codiagonal</a> <a id="2450" class="Symbol">:</a> <a id="2452" class="Symbol"></a> <a id="2454" class="Symbol">{</a><a id="2455" href="Monad.ElgotMonad.html#2455" class="Bound">X</a> <a id="2457" href="Monad.ElgotMonad.html#2457" class="Bound">Y</a><a id="2458" class="Symbol">}</a> <a id="2460" class="Symbol">{</a><a id="2461" href="Monad.ElgotMonad.html#2461" class="Bound">f</a> <a id="2463" class="Symbol">:</a> <a id="2465" href="Monad.ElgotMonad.html#2455" class="Bound">X</a> <a id="2467" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="2469" href="Monad.ElgotMonad.html#2000" class="Function">T₀</a> <a id="2472" class="Symbol">((</a><a id="2474" href="Monad.ElgotMonad.html#2457" class="Bound">Y</a> <a id="2476" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2478" href="Monad.ElgotMonad.html#2455" class="Bound">X</a><a id="2479" class="Symbol">)</a> <a id="2481" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2483" href="Monad.ElgotMonad.html#2455" class="Bound">X</a><a id="2484" class="Symbol">)}</a>
<a id="2496" class="Symbol"></a> <a id="2498" class="Symbol">(</a><a id="2499" href="Monad.ElgotMonad.html#2010" class="Function">T₁</a> <a id="2502" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="2504" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="2508" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="2510" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="2513" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="2515" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2517" href="Monad.ElgotMonad.html#2461" class="Bound">f</a> <a id="2519" class="Symbol">)</a><a id="2520" href="Monad.ElgotMonad.html#2057" class="Field Operator"></a> <a id="2522" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="2524" href="Monad.ElgotMonad.html#2461" class="Bound">f</a> <a id="2526" href="Monad.ElgotMonad.html#2057" class="Field Operator"></a> <a id="2528" href="Monad.ElgotMonad.html#2057" class="Field Operator"></a>
<a id="IsElgot.Uniformity"></a><a id="2536" href="Monad.ElgotMonad.html#2536" class="Field">Uniformity</a> <a id="2547" class="Symbol">:</a> <a id="2549" class="Symbol"></a> <a id="2551" class="Symbol">{</a><a id="2552" href="Monad.ElgotMonad.html#2552" class="Bound">X</a> <a id="2554" href="Monad.ElgotMonad.html#2554" class="Bound">Y</a> <a id="2556" href="Monad.ElgotMonad.html#2556" class="Bound">Z</a><a id="2557" class="Symbol">}</a> <a id="2559" class="Symbol">{</a><a id="2560" href="Monad.ElgotMonad.html#2560" class="Bound">f</a> <a id="2562" class="Symbol">:</a> <a id="2564" href="Monad.ElgotMonad.html#2552" class="Bound">X</a> <a id="2566" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="2568" href="Monad.ElgotMonad.html#2000" class="Function">T₀</a> <a id="2571" class="Symbol">(</a><a id="2572" href="Monad.ElgotMonad.html#2554" class="Bound">Y</a> <a id="2574" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2576" href="Monad.ElgotMonad.html#2552" class="Bound">X</a><a id="2577" class="Symbol">)}</a> <a id="2580" class="Symbol">{</a><a id="2581" href="Monad.ElgotMonad.html#2581" class="Bound">g</a> <a id="2583" class="Symbol">:</a> <a id="2585" href="Monad.ElgotMonad.html#2556" class="Bound">Z</a> <a id="2587" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="2589" href="Monad.ElgotMonad.html#2000" class="Function">T₀</a> <a id="2592" class="Symbol">(</a><a id="2593" href="Monad.ElgotMonad.html#2554" class="Bound">Y</a> <a id="2595" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2597" href="Monad.ElgotMonad.html#2556" class="Bound">Z</a><a id="2598" class="Symbol">)}</a> <a id="2601" class="Symbol">{</a><a id="2602" href="Monad.ElgotMonad.html#2602" class="Bound">h</a> <a id="2604" class="Symbol">:</a> <a id="2606" href="Monad.ElgotMonad.html#2556" class="Bound">Z</a> <a id="2608" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="2610" href="Monad.ElgotMonad.html#2552" class="Bound">X</a><a id="2611" class="Symbol">}</a>
<a id="2622" class="Symbol"></a> <a id="2624" href="Monad.ElgotMonad.html#2560" class="Bound">f</a> <a id="2626" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2628" href="Monad.ElgotMonad.html#2602" class="Bound">h</a> <a id="2630" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="2632" class="Symbol">(</a><a id="2633" href="Monad.ElgotMonad.html#2010" class="Function">T₁</a> <a id="2636" class="Symbol">(</a><a id="2637" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="2641" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="2644" href="Monad.ElgotMonad.html#2602" class="Bound">h</a><a id="2645" class="Symbol">))</a> <a id="2648" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2650" href="Monad.ElgotMonad.html#2581" class="Bound">g</a> <a id="2652" class="Symbol"></a> <a id="2654" href="Monad.ElgotMonad.html#2560" class="Bound">f</a> <a id="2656" href="Monad.ElgotMonad.html#2057" class="Field Operator"></a> <a id="2658" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2660" href="Monad.ElgotMonad.html#2602" class="Bound">h</a> <a id="2662" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="2664" href="Monad.ElgotMonad.html#2581" class="Bound">g</a> <a id="2666" href="Monad.ElgotMonad.html#2057" class="Field Operator"></a>
<a id="2671" class="Keyword">record</a> <a id="ElgotMonad"></a><a id="2678" href="Monad.ElgotMonad.html#2678" class="Record">ElgotMonad</a> <a id="2689" class="Symbol">:</a> <a id="2691" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2695" class="Symbol">(</a><a id="2696" href="Monad.ElgotMonad.html#777" class="Bound">o</a> <a id="2698" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="2700" href="Monad.ElgotMonad.html#779" class="Bound"></a> <a id="2702" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="2704" href="Monad.ElgotMonad.html#781" class="Bound">e</a><a id="2705" class="Symbol">)</a> <a id="2707" class="Keyword">where</a>
<a id="2717" class="Keyword">field</a>
<a id="ElgotMonad.T"></a><a id="2729" href="Monad.ElgotMonad.html#2729" class="Field">T</a> <a id="2731" class="Symbol">:</a> <a id="2733" href="Categories.Monad.html#454" class="Record">Monad</a> <a id="2739" href="Monad.ElgotMonad.html#888" class="Field">C</a>
<a id="ElgotMonad.isElgot"></a><a id="2747" href="Monad.ElgotMonad.html#2747" class="Field">isElgot</a> <a id="2755" class="Symbol">:</a> <a id="2757" href="Monad.ElgotMonad.html#1902" class="Record">IsElgot</a> <a id="2765" href="Monad.ElgotMonad.html#2729" class="Field">T</a>
<a id="2772" class="Keyword">open</a> <a id="2777" href="Monad.ElgotMonad.html#1902" class="Module">IsElgot</a> <a id="2785" href="Monad.ElgotMonad.html#2747" class="Field">isElgot</a> <a id="2793" class="Keyword">public</a>
</pre>
### *Proposition 15*: (Strong) Elgot monads are (strong) pre-Elgot
<pre class="Agda"> <a id="2883" class="Comment">-- elgot monads are pre-elgot</a>
<a id="Elgot⇒PreElgot"></a><a id="2915" href="Monad.ElgotMonad.html#2915" class="Function">Elgot⇒PreElgot</a> <a id="2930" class="Symbol">:</a> <a id="2932" href="Monad.ElgotMonad.html#2678" class="Record">ElgotMonad</a> <a id="2943" class="Symbol"></a> <a id="2945" href="Monad.ElgotMonad.html#1709" class="Record">PreElgotMonad</a>
<a id="2961" href="Monad.ElgotMonad.html#2915" class="Function">Elgot⇒PreElgot</a> <a id="2976" href="Monad.ElgotMonad.html#2976" class="Bound">EM</a> <a id="2979" class="Symbol">=</a> <a id="2981" class="Keyword">record</a>
<a id="2993" class="Symbol">{</a> <a id="2995" href="Monad.ElgotMonad.html#1763" class="Field">T</a> <a id="2997" class="Symbol">=</a> <a id="2999" href="Monad.ElgotMonad.html#2729" class="Field">T</a>
<a id="3006" class="Symbol">;</a> <a id="3008" href="Monad.ElgotMonad.html#1781" class="Field">isPreElgot</a> <a id="3019" class="Symbol">=</a> <a id="3021" class="Keyword">record</a>
<a id="3035" class="Symbol">{</a> <a id="3037" href="Monad.ElgotMonad.html#1366" class="Field">elgotalgebras</a> <a id="3051" class="Symbol">=</a> <a id="3053" class="Symbol">λ</a> <a id="3055" class="Symbol">{</a><a id="3056" href="Monad.ElgotMonad.html#3056" class="Bound">X</a><a id="3057" class="Symbol">}</a> <a id="3059" class="Symbol"></a> <a id="3061" class="Keyword">record</a>
<a id="3076" class="Symbol">{</a> <a id="3078" href="ElgotAlgebra.html#2186" class="Field Operator">_#</a> <a id="3081" class="Symbol">=</a> <a id="3083" class="Symbol">λ</a> <a id="3085" href="Monad.ElgotMonad.html#3085" class="Bound">f</a> <a id="3087" class="Symbol"></a> <a id="3089" class="Symbol">(</a><a id="3090" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3092" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="3095" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="3098" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="3100" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="3104" class="Symbol">_</a> <a id="3106" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3108" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="3111" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="3113" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3115" href="Monad.ElgotMonad.html#3085" class="Bound">f</a><a id="3116" class="Symbol">)</a> <a id="3118" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a>
<a id="3128" class="Symbol">;</a> <a id="3130" href="ElgotAlgebra.html#2259" class="Field">#-Fixpoint</a> <a id="3141" class="Symbol">=</a> <a id="3143" class="Symbol">λ</a> <a id="3145" class="Symbol">{</a><a id="3146" href="Monad.ElgotMonad.html#3146" class="Bound">Y</a><a id="3147" class="Symbol">}</a> <a id="3149" class="Symbol">{</a><a id="3150" href="Monad.ElgotMonad.html#3150" class="Bound">f</a><a id="3151" class="Symbol">}</a> <a id="3153" class="Symbol"></a> <a id="3155" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="3172" class="Symbol">(</a><a id="3173" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3175" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="3178" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="3181" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="3183" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="3187" class="Symbol">_</a> <a id="3189" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3191" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="3194" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="3196" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3198" href="Monad.ElgotMonad.html#3150" class="Bound">f</a><a id="3199" class="Symbol">)</a> <a id="3201" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="3259" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3262" href="Monad.ElgotMonad.html#2195" class="Function">Fixpoint</a> <a id="3271" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3284" class="Symbol">(</a><a id="3285" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="3289" class="Symbol">_</a> <a id="3291" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3293" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="3296" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3298" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="3302" class="Symbol">_</a> <a id="3304" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="3306" class="Symbol">(</a><a id="3307" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3309" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="3312" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="3315" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="3317" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="3321" class="Symbol">_</a> <a id="3323" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3325" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="3328" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="3330" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3332" href="Monad.ElgotMonad.html#3150" class="Bound">f</a><a id="3333" class="Symbol">)</a> <a id="3335" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="3337" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="3338" class="Symbol">)</a> <a id="3340" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3342" class="Symbol">(</a><a id="3343" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3345" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="3348" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="3351" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="3353" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="3357" class="Symbol">_</a> <a id="3359" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3361" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="3364" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="3366" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3368" href="Monad.ElgotMonad.html#3150" class="Bound">f</a><a id="3369" class="Symbol">)</a> <a id="3371" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3374" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="3380" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="3384" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3396" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3398" class="Symbol">(</a><a id="3399" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="3403" class="Symbol">_</a> <a id="3405" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3407" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="3410" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3412" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="3416" class="Symbol">_</a> <a id="3418" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="3420" class="Symbol">(</a><a id="3421" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3423" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="3426" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="3429" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="3431" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="3435" class="Symbol">_</a> <a id="3437" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3439" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="3442" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="3444" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3446" href="Monad.ElgotMonad.html#3150" class="Bound">f</a><a id="3447" class="Symbol">)</a> <a id="3449" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="3451" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="3452" class="Symbol">)</a> <a id="3454" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3456" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="3459" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a>
<a id="3473" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="3475" class="Symbol">(</a><a id="3476" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="3480" class="Symbol">_</a> <a id="3482" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3484" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="3487" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3489" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="3493" class="Symbol">_</a>
<a id="3520" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="3522" class="Symbol">(</a><a id="3523" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3525" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="3528" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="3531" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="3533" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="3537" class="Symbol">_</a> <a id="3539" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3541" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="3544" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="3546" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3548" href="Monad.ElgotMonad.html#3150" class="Bound">f</a><a id="3549" class="Symbol">)</a> <a id="3551" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="3553" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="3554" class="Symbol">)</a> <a id="3556" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3558" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="3562" class="Symbol">_</a> <a id="3564" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3566" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="3569" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="3571" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3573" href="Monad.ElgotMonad.html#3150" class="Bound">f</a> <a id="3593" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="3597" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a>
<a id="3707" class="Symbol">(</a><a id="3708" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="3714" class="Symbol">(</a><a id="3715" href="Categories.Functor.Core.html#565" class="Function">homomorphism</a><a id="3727" class="Symbol">))</a>
<a id="3831" class="Symbol">(</a><a id="3832" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="3838" class="Symbol">(</a><a id="3839" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="3845" class="Symbol">(</a><a id="3846" href="Categories.NaturalTransformation.Core.html#827" class="Function">η.commute</a> <a id="3856" class="Symbol">_)))</a>
<a id="3959" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="3967" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="3979" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3981" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="3985" class="Symbol">_</a> <a id="3987" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3989" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="3992" class="Symbol">(</a><a id="3993" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="3995" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="3999" class="Symbol">_</a> <a id="4001" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4003" class="Symbol">(</a><a id="4004" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4006" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="4009" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="4012" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4014" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="4018" class="Symbol">_</a> <a id="4020" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4022" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="4025" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4027" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4029" href="Monad.ElgotMonad.html#3150" class="Bound">f</a><a id="4030" class="Symbol">)</a> <a id="4032" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="4034" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4036" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4039" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="4041" class="Symbol">)</a>
<a id="4054" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4056" class="Symbol">(</a><a id="4057" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="4061" class="Symbol">_</a> <a id="4063" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4065" class="Symbol">(</a><a id="4066" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="4070" class="Symbol">_</a> <a id="4072" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4074" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4076" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="4080" class="Symbol">_</a> <a id="4082" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4084" class="Symbol">(</a><a id="4085" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4087" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="4090" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="4093" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4095" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="4099" class="Symbol">_</a> <a id="4101" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4103" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="4106" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4108" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4110" href="Monad.ElgotMonad.html#3150" class="Bound">f</a><a id="4111" class="Symbol">)</a> <a id="4113" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="4115" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="4116" class="Symbol">))</a> <a id="4119" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4121" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="4124" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4126" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4128" href="Monad.ElgotMonad.html#3150" class="Bound">f</a> <a id="4141" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4144" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="4153" class="Symbol">(</a><a id="4154" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="4164" class="Symbol">(</a><a id="4165" href="Categories.Functor.Core.html#696" class="Function">F-resp-≈</a> <a id="4174" href="Categories.Object.Coproduct.html#569" class="Function">inject₁</a><a id="4181" class="Symbol">))</a> <a id="4184" class="Symbol">(</a><a id="4185" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="4191" class="Symbol">(</a><a id="4192" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="4198" href="Categories.Object.Coproduct.html#602" class="Function">inject₂</a><a id="4205" class="Symbol">))</a> <a id="4208" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="4216" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4228" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4230" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="4234" class="Symbol">_</a> <a id="4236" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4238" class="Symbol">(</a><a id="4239" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="4242" class="Symbol">(</a><a id="4243" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="4247" class="Symbol">_))</a>
<a id="4261" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4263" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="4267" class="Symbol">_</a> <a id="4269" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4271" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="4275" class="Symbol">_</a> <a id="4277" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4279" class="Symbol">(</a><a id="4280" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4282" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="4285" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="4288" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4290" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="4294" class="Symbol">_</a> <a id="4296" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4298" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="4301" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4303" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4305" href="Monad.ElgotMonad.html#3150" class="Bound">f</a><a id="4306" class="Symbol">)</a> <a id="4308" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="4310" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4312" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4314" href="Monad.ElgotMonad.html#3150" class="Bound">f</a> <a id="4348" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4351" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="4360" class="Symbol">(</a><a id="4361" href="Categories.Monad.html#899" class="Function">T.identityˡ</a><a id="4372" class="Symbol">)</a> <a id="4374" class="Symbol">(</a><a id="4375" href="Categories.Morphism.Reasoning.Core.html#6851" class="Function">cancelˡ</a> <a id="4383" href="Categories.Monad.html#953" class="Function">T.identityʳ</a><a id="4394" class="Symbol">)</a> <a id="4396" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="4404" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4416" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4418" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="4422" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4424" class="Symbol">(</a><a id="4425" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4427" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="4430" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="4433" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4435" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="4439" class="Symbol">_</a> <a id="4441" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4443" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="4446" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4448" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4450" href="Monad.ElgotMonad.html#3150" class="Bound">f</a><a id="4451" class="Symbol">)</a> <a id="4453" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="4455" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4457" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4459" href="Monad.ElgotMonad.html#3150" class="Bound">f</a> <a id="4503" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="4513" class="Symbol">;</a> <a id="4515" href="ElgotAlgebra.html#2335" class="Field">#-Uniformity</a> <a id="4528" class="Symbol">=</a> <a id="4530" class="Symbol">λ</a> <a id="4532" class="Symbol">{</a><a id="4533" href="Monad.ElgotMonad.html#4533" class="Bound">X</a><a id="4534" class="Symbol">}</a> <a id="4536" class="Symbol">{</a><a id="4537" href="Monad.ElgotMonad.html#4537" class="Bound">Y</a><a id="4538" class="Symbol">}</a> <a id="4540" class="Symbol">{</a><a id="4541" href="Monad.ElgotMonad.html#4541" class="Bound">f</a><a id="4542" class="Symbol">}</a> <a id="4544" class="Symbol">{</a><a id="4545" href="Monad.ElgotMonad.html#4545" class="Bound">g</a><a id="4546" class="Symbol">}</a> <a id="4548" class="Symbol">{</a><a id="4549" href="Monad.ElgotMonad.html#4549" class="Bound">h</a><a id="4550" class="Symbol">}</a> <a id="4552" href="Monad.ElgotMonad.html#4552" class="Bound">H</a> <a id="4554" class="Symbol"></a> <a id="4556" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="4560" class="Symbol">(</a><a id="4561" href="Monad.ElgotMonad.html#2536" class="Function">Uniformity</a> <a id="4572" class="Symbol">(</a><a id="4573" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="4592" class="Symbol">(</a><a id="4593" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4595" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="4598" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="4601" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4603" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="4607" class="Symbol">_</a> <a id="4609" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4611" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="4614" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4616" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4618" href="Monad.ElgotMonad.html#4545" class="Bound">g</a><a id="4619" class="Symbol">)</a> <a id="4621" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4623" href="Monad.ElgotMonad.html#4549" class="Bound">h</a> <a id="4651" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="4655" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="4661" href="Monad.ElgotMonad.html#4552" class="Bound">H</a> <a id="4663" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="4677" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4679" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="4682" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="4685" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4687" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="4691" class="Symbol">_</a> <a id="4693" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4695" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="4698" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4700" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4702" class="Symbol">(</a><a id="4703" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="4707" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="4710" href="Monad.ElgotMonad.html#4549" class="Bound">h</a><a id="4711" class="Symbol">)</a> <a id="4713" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4715" href="Monad.ElgotMonad.html#4541" class="Bound">f</a> <a id="4736" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4739" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="4745" href="Categories.Category.Cocartesian.html#2662" class="Function">[]∘+₁</a> <a id="4751" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4765" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4767" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="4770" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="4773" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4775" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="4779" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4781" class="Symbol">(</a><a id="4782" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="4786" class="Symbol">_</a> <a id="4788" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4790" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="4792" class="Symbol">)</a> <a id="4794" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4796" href="Monad.ElgotMonad.html#4549" class="Bound">h</a> <a id="4798" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4800" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4802" href="Monad.ElgotMonad.html#4541" class="Bound">f</a> <a id="4824" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4827" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="4836" class="Symbol">(</a><a id="4837" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="4843" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="4853" class="Symbol">(</a><a id="4854" href="Categories.Functor.Core.html#696" class="Function">F-resp-≈</a> <a id="4863" class="Symbol">(</a><a id="4864" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="4868" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a><a id="4877" class="Symbol">)))</a> <a id="4881" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="4887" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="4895" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4909" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="4911" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="4914" class="Symbol">(</a><a id="4915" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="4918" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4920" href="Monad.ElgotMonad.html#897" class="Function">idC</a><a id="4923" class="Symbol">)</a> <a id="4925" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="4927" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="4931" class="Symbol">_</a> <a id="4933" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4935" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="4938" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4940" href="Monad.ElgotMonad.html#4549" class="Bound">h</a> <a id="4942" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="4944" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4946" href="Monad.ElgotMonad.html#4541" class="Bound">f</a> <a id="4968" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="4972" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="4981" class="Symbol">(</a><a id="4982" href="Categories.Functor.Core.html#696" class="Function">F-resp-≈</a> <a id="4991" href="Categories.Category.Cocartesian.html#2548" class="Function">+₁∘i₁</a><a id="4996" class="Symbol">)</a> <a id="4998" class="Symbol">(</a><a id="4999" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="5005" href="Categories.Category.Cocartesian.html#2585" class="Function">+₁∘i₂</a><a id="5010" class="Symbol">)</a> <a id="5012" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="5020" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="5034" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5036" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="5039" class="Symbol">((</a><a id="5041" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="5045" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5048" href="Monad.ElgotMonad.html#4549" class="Bound">h</a><a id="5049" class="Symbol">)</a> <a id="5051" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5053" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="5055" class="Symbol">)</a> <a id="5057" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5059" class="Symbol">(</a><a id="5060" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="5064" class="Symbol">_</a> <a id="5066" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5068" class="Symbol">(</a><a id="5069" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="5073" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5076" href="Monad.ElgotMonad.html#4549" class="Bound">h</a><a id="5077" class="Symbol">))</a> <a id="5080" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5082" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="5085" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5087" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5089" href="Monad.ElgotMonad.html#4541" class="Bound">f</a> <a id="5093" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5096" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="5105" href="Categories.Functor.Core.html#565" class="Function">homomorphism</a> <a id="5118" class="Symbol">(</a> <a id="5120" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="5126" class="Symbol">(</a><a id="5127" href="Categories.NaturalTransformation.Core.html#827" class="Function">η.commute</a> <a id="5137" class="Symbol">_))</a> <a id="5141" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="5149" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5163" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5165" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="5168" class="Symbol">(</a><a id="5169" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="5173" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5176" href="Monad.ElgotMonad.html#4549" class="Bound">h</a><a id="5177" class="Symbol">)</a> <a id="5179" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5181" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="5184" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="5187" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5189" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="5192" class="Symbol">(</a><a id="5193" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="5197" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5200" href="Monad.ElgotMonad.html#4549" class="Bound">h</a><a id="5201" class="Symbol">)</a> <a id="5203" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5205" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="5209" class="Symbol">_</a> <a id="5211" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5213" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="5216" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5218" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5220" href="Monad.ElgotMonad.html#4541" class="Bound">f</a> <a id="5222" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="5226" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="5232" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="5236" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="5250" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="5253" class="Symbol">(</a><a id="5254" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="5258" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5261" href="Monad.ElgotMonad.html#4549" class="Bound">h</a><a id="5262" class="Symbol">)</a> <a id="5264" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5266" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5268" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="5271" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="5274" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5276" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="5280" class="Symbol">_</a> <a id="5282" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5284" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="5287" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5289" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5291" href="Monad.ElgotMonad.html#4541" class="Bound">f</a> <a id="5293" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a><a id="5294" class="Symbol">))</a>
<a id="5305" class="Symbol">;</a> <a id="5307" href="ElgotAlgebra.html#2466" class="Field">#-Folding</a> <a id="5317" class="Symbol">=</a> <a id="5319" class="Symbol">λ</a> <a id="5321" class="Symbol">{</a><a id="5322" href="Monad.ElgotMonad.html#5322" class="Bound">X</a><a id="5323" class="Symbol">}</a> <a id="5325" class="Symbol">{</a><a id="5326" href="Monad.ElgotMonad.html#5326" class="Bound">Y</a><a id="5327" class="Symbol">}</a> <a id="5329" class="Symbol">{</a><a id="5330" href="Monad.ElgotMonad.html#5330" class="Bound">f</a><a id="5331" class="Symbol">}</a> <a id="5333" class="Symbol">{</a><a id="5334" href="Monad.ElgotMonad.html#5334" class="Bound">h</a><a id="5335" class="Symbol">}</a> <a id="5337" class="Symbol"></a> <a id="5339" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="5356" class="Symbol">(</a><a id="5357" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5359" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="5362" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="5365" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5367" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="5371" class="Symbol">_</a> <a id="5373" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5375" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="5378" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5380" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5382" class="Symbol">(((</a><a id="5385" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5387" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="5390" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="5393" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5395" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="5399" class="Symbol">_</a> <a id="5401" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5403" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="5406" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5408" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5410" href="Monad.ElgotMonad.html#5330" class="Bound">f</a><a id="5411" class="Symbol">)</a> <a id="5413" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a><a id="5414" class="Symbol">)</a> <a id="5416" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5419" href="Monad.ElgotMonad.html#5334" class="Bound">h</a><a id="5420" class="Symbol">))</a><a id="5422" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="5424" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5427" href="Monad.ElgotMonad.html#2104" class="Function">†-resp-≈</a> <a id="5436" href="Categories.Category.Cocartesian.html#2662" class="Function">[]∘+₁</a> <a id="5442" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5455" href="Categories.Object.Coproduct.html#532" class="UnsolvedMeta Function Operator">[</a><a id="5456" class="UnsolvedMeta"> </a><a id="5457" href="Monad.ElgotMonad.html#7809" class="UnsolvedMeta Function">T₁</a><a id="5459" class="UnsolvedMeta"> </a><a id="5460" href="Categories.Object.Coproduct.html#492" class="UnsolvedMeta Function">i₁</a><a id="5462" class="UnsolvedMeta"> </a><a id="5463" href="Categories.Category.Core.html#656" class="UnsolvedMeta Function Operator"></a><a id="5464" class="UnsolvedMeta"> </a><a id="5465" class="UnsolvedMeta Symbol">(</a><a id="5466" href="Categories.Object.Coproduct.html#532" class="UnsolvedMeta Function Operator">[</a><a id="5467" class="UnsolvedMeta"> </a><a id="5468" href="Monad.ElgotMonad.html#7809" class="UnsolvedMeta Function">T₁</a><a id="5470" class="UnsolvedMeta"> </a><a id="5471" href="Categories.Object.Coproduct.html#492" class="UnsolvedMeta Function">i₁</a><a id="5473" class="UnsolvedMeta"> </a><a id="5474" href="Categories.Object.Coproduct.html#532" class="UnsolvedMeta Function Operator">,</a><a id="5475" class="UnsolvedMeta"> </a><a id="5476" href="Categories.NaturalTransformation.Core.html#783" class="UnsolvedMeta Function">η.η</a><a id="5479" class="UnsolvedMeta"> </a><a id="5480" class="UnsolvedMeta Symbol">_</a><a id="5481" class="UnsolvedMeta"> </a><a id="5482" href="Categories.Category.Core.html#656" class="UnsolvedMeta Function Operator"></a><a id="5483" class="UnsolvedMeta"> </a><a id="5484" href="Categories.Object.Coproduct.html#512" class="UnsolvedMeta Function">i₂</a><a id="5486" class="UnsolvedMeta"> </a><a id="5487" href="Categories.Object.Coproduct.html#532" class="UnsolvedMeta Function Operator">]</a><a id="5488" class="UnsolvedMeta"> </a><a id="5489" href="Categories.Category.Core.html#656" class="UnsolvedMeta Function Operator"></a><a id="5490" class="UnsolvedMeta"> </a><a id="5491" href="Monad.ElgotMonad.html#5330" class="UnsolvedMeta Bound">f</a><a id="5492" class="UnsolvedMeta Symbol">)</a><a id="5493" class="UnsolvedMeta"> </a><a id="5494" href="Monad.ElgotMonad.html#2057" class="UnsolvedMeta Function Operator"></a><a id="5495" class="UnsolvedMeta"> </a><a id="5496" href="Categories.Object.Coproduct.html#532" class="UnsolvedMeta Function Operator">,</a><a id="5497" class="UnsolvedMeta"> </a><a id="5498" class="UnsolvedMeta Symbol">(</a><a id="5499" href="Categories.NaturalTransformation.Core.html#783" class="UnsolvedMeta Function">η.η</a><a id="5502" class="UnsolvedMeta"> </a><a id="5503" class="UnsolvedMeta Symbol">_</a><a id="5504" class="UnsolvedMeta"> </a><a id="5505" href="Categories.Category.Core.html#656" class="UnsolvedMeta Function Operator"></a><a id="5506" class="UnsolvedMeta"> </a><a id="5507" href="Categories.Object.Coproduct.html#512" class="UnsolvedMeta Function">i₂</a><a id="5509" class="UnsolvedMeta Symbol">)</a><a id="5510" class="UnsolvedMeta"> </a><a id="5511" href="Categories.Category.Core.html#656" class="UnsolvedMeta Function Operator"></a><a id="5512" class="UnsolvedMeta"> </a><a id="5513" href="Monad.ElgotMonad.html#5334" class="UnsolvedMeta Bound">h</a><a id="5514" class="UnsolvedMeta"> </a><a id="5515" href="Categories.Object.Coproduct.html#532" class="UnsolvedMeta Function Operator">]</a><a id="5516" class="UnsolvedMeta"> </a><a id="5517" href="Monad.ElgotMonad.html#2057" class="UnsolvedMeta Function Operator"></a><a id="5518" class="UnsolvedMeta"> </a><a id="5519" href="Relation.Binary.Reasoning.Setoid.html#1061" class="UnsolvedMeta Function">≈⟨</a><a id="5521" class="UnsolvedMeta"> </a><a id="5522" class="UnsolvedMeta Hole">{! !}</a><a id="5529" class="UnsolvedMeta"> </a><a id="5530" href="Relation.Binary.Reasoning.Setoid.html#1061" class="UnsolvedMeta Function"></a>
<a id="5542" class="Hole">{! !}</a> <a id="5550" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5553" class="Hole">{! !}</a> <a id="5561" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5573" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5575" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5577" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="5580" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="5583" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5585" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="5589" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5591" class="Symbol">(</a><a id="5592" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="5596" class="Symbol">_</a> <a id="5598" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5600" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="5602" class="Symbol">)</a> <a id="5604" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5606" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="5609" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5611" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5613" href="Monad.ElgotMonad.html#5330" class="Bound">f</a> <a id="5615" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5617" class="Symbol">(</a><a id="5618" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="5622" class="Symbol">_</a> <a id="5624" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5626" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="5628" class="Symbol">)</a> <a id="5630" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5632" href="Monad.ElgotMonad.html#5334" class="Bound">h</a> <a id="5634" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5636" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="5638" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="5642" href="Monad.ElgotMonad.html#2104" class="Function">†-resp-≈</a> <a id="5651" class="Symbol">(</a><a id="5652" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="5661" class="Symbol">(</a><a id="5662" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="5668" href="Categories.Category.Cocartesian.html#2662" class="Function">[]∘+₁</a><a id="5673" class="Symbol">)</a> <a id="5675" class="Symbol">(</a><a id="5676" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="5682" href="Categories.Object.Coproduct.html#602" class="Function">inject₂</a><a id="5689" class="Symbol">))</a> <a id="5692" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="5704" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5706" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5708" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="5711" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="5714" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5716" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="5720" class="Symbol">_</a> <a id="5722" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5724" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="5727" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5729" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5731" class="Symbol">(</a><a id="5732" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="5736" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5739" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="5741" class="Symbol">)</a> <a id="5743" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5745" href="Monad.ElgotMonad.html#5330" class="Bound">f</a> <a id="5747" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5749" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5751" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="5754" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="5757" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5759" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="5763" class="Symbol">_</a> <a id="5765" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5767" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="5770" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5772" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5774" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="5777" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5779" href="Monad.ElgotMonad.html#5334" class="Bound">h</a> <a id="5781" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5783" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="5785" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="5789" href="Monad.ElgotMonad.html#2104" class="Function">†-resp-≈</a> <a id="5798" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a> <a id="5802" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="5814" class="Symbol">(</a><a id="5815" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5817" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="5820" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="5823" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5825" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="5829" class="Symbol">_</a> <a id="5831" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5833" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="5836" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="5838" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5840" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="5842" class="Symbol">(</a><a id="5843" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="5847" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5850" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="5852" class="Symbol">)</a> <a id="5854" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5856" href="Monad.ElgotMonad.html#5330" class="Bound">f</a> <a id="5858" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="5860" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="5863" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5865" href="Monad.ElgotMonad.html#5334" class="Bound">h</a> <a id="5867" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="5868" class="Symbol">)</a><a id="5869" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="5871" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="5881" class="Symbol">;</a> <a id="5883" href="ElgotAlgebra.html#2582" class="Field">#-resp-≈</a> <a id="5892" class="Symbol">=</a> <a id="5894" class="Symbol">λ</a> <a id="5896" href="Monad.ElgotMonad.html#5896" class="Bound">fg</a> <a id="5899" class="Symbol"></a> <a id="5901" href="Monad.ElgotMonad.html#2104" class="Function">†-resp-≈</a> <a id="5910" class="Symbol">(</a><a id="5911" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="5921" href="Monad.ElgotMonad.html#5896" class="Bound">fg</a><a id="5923" class="Symbol">)</a>
<a id="5933" class="Symbol">}</a>
<a id="5941" class="Symbol">;</a> <a id="5943" href="Monad.ElgotMonad.html#1543" class="Field">assoc</a> <a id="5949" class="Symbol">=</a> <a id="5951" class="Symbol">λ</a> <a id="5953" class="Symbol">{</a><a id="5954" href="Monad.ElgotMonad.html#5954" class="Bound">X</a><a id="5955" class="Symbol">}</a> <a id="5957" class="Symbol">{</a><a id="5958" href="Monad.ElgotMonad.html#5958" class="Bound">Y</a><a id="5959" class="Symbol">}</a> <a id="5961" class="Symbol">{</a><a id="5962" href="Monad.ElgotMonad.html#5962" class="Bound">Z</a><a id="5963" class="Symbol">}</a> <a id="5965" href="Monad.ElgotMonad.html#5965" class="Bound">f</a> <a id="5967" href="Monad.ElgotMonad.html#5967" class="Bound">h</a> <a id="5969" class="Symbol"></a> <a id="5971" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="5986" class="Comment">-- TODO tidy up by moving doing sym outside, apply Naturality and then do `†-resp-≈ pullˡ` once.</a>
<a id="6091" class="Symbol">(</a><a id="6092" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="6094" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="6097" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="6100" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="6102" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="6106" class="Symbol">_</a> <a id="6108" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6110" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="6113" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="6115" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6117" class="Symbol">(</a><a id="6118" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="6122" href="Monad.ElgotMonad.html#5958" class="Bound">Y</a> <a id="6124" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6126" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="6129" href="Monad.ElgotMonad.html#5967" class="Bound">h</a> <a id="6131" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6134" href="Monad.ElgotMonad.html#897" class="Function">idC</a><a id="6137" class="Symbol">)</a> <a id="6139" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6141" href="Monad.ElgotMonad.html#5965" class="Bound">f</a><a id="6142" class="Symbol">)</a><a id="6143" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="6205" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6208" href="Monad.ElgotMonad.html#2104" class="Function">†-resp-≈</a> <a id="6217" class="Symbol">(</a><a id="6218" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6224" href="Categories.Category.Cocartesian.html#2662" class="Function">[]∘+₁</a><a id="6229" class="Symbol">)</a> <a id="6231" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="6242" class="Symbol">((</a><a id="6244" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="6246" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="6249" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="6252" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6254" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="6258" class="Symbol">_</a> <a id="6260" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6262" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="6265" href="Monad.ElgotMonad.html#5967" class="Bound">h</a> <a id="6267" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="6269" class="Symbol">(</a><a id="6270" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="6274" class="Symbol">_</a> <a id="6276" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6278" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="6280" class="Symbol">)</a> <a id="6282" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6284" href="Monad.ElgotMonad.html#897" class="Function">idC</a> <a id="6288" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="6290" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6292" href="Monad.ElgotMonad.html#5965" class="Bound">f</a><a id="6293" class="Symbol">)</a><a id="6294" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a><a id="6295" class="Symbol">)</a> <a id="6356" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="6360" href="Monad.ElgotMonad.html#2104" class="Function">†-resp-≈</a> <a id="6369" class="Symbol">(</a><a id="6370" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="6380" class="Symbol">(</a><a id="6381" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="6390" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="6396" class="Symbol">(</a><a id="6397" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="6401" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a><a id="6410" class="Symbol">)))</a> <a id="6414" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="6424" class="Symbol">(</a><a id="6425" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="6427" class="Symbol">(</a><a id="6428" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="6431" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="6434" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6436" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="6440" class="Symbol">_)</a> <a id="6443" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6445" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="6448" href="Monad.ElgotMonad.html#5967" class="Bound">h</a> <a id="6450" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="6452" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="6456" class="Symbol">_</a> <a id="6458" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6460" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="6463" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="6465" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6467" href="Monad.ElgotMonad.html#5965" class="Bound">f</a><a id="6468" class="Symbol">)</a><a id="6469" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="6538" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="6542" href="Monad.ElgotMonad.html#2104" class="Function">†-resp-≈</a> <a id="6551" class="Symbol">(</a><a id="6552" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="6562" class="Symbol">(</a><a id="6563" href="Categories.Category.Cocartesian.html#2271" class="Function">[]-congʳ</a> <a id="6572" class="Symbol">(</a><a id="6573" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6579" class="Symbol">(</a><a id="6580" href="Categories.NaturalTransformation.Core.html#827" class="Function">μ.commute</a> <a id="6590" class="Symbol">_))))</a> <a id="6596" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="6606" class="Symbol">(</a><a id="6607" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="6609" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="6613" class="Symbol">_</a> <a id="6615" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6617" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="6620" class="Symbol">(</a><a id="6621" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="6624" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="6626" class="Symbol">)</a> <a id="6628" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6630" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="6633" href="Monad.ElgotMonad.html#5967" class="Bound">h</a> <a id="6635" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="6637" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="6641" class="Symbol">_</a> <a id="6643" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6645" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="6648" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="6650" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6652" href="Monad.ElgotMonad.html#5965" class="Bound">f</a><a id="6653" class="Symbol">)</a><a id="6654" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="6720" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="6724" href="Monad.ElgotMonad.html#2104" class="Function">†-resp-≈</a> <a id="6733" class="Symbol">(</a><a id="6734" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="6744" class="Symbol">(</a><a id="6745" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="6754" class="Symbol">(</a><a id="6755" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="6765" href="Categories.Functor.Core.html#565" class="Function">homomorphism</a><a id="6777" class="Symbol">)</a> <a id="6779" class="Symbol">(</a><a id="6780" href="Categories.Morphism.Reasoning.Core.html#6851" class="Function">cancelˡ</a> <a id="6788" href="Categories.Monad.html#953" class="Function">T.identityʳ</a><a id="6799" class="Symbol">)))</a> <a id="6803" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="6813" class="Symbol">(</a><a id="6814" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="6816" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="6820" class="Symbol">_</a> <a id="6822" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6824" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="6827" class="Symbol">(</a><a id="6828" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="6831" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="6834" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6836" href="Monad.ElgotMonad.html#5967" class="Bound">h</a><a id="6837" class="Symbol">)</a> <a id="6839" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="6841" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="6845" class="Symbol">_</a> <a id="6847" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6849" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="6853" class="Symbol">_</a> <a id="6855" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6857" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="6861" class="Symbol">_</a> <a id="6863" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6865" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="6868" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="6870" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6872" href="Monad.ElgotMonad.html#5965" class="Bound">f</a><a id="6873" class="Symbol">)</a><a id="6874" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="6927" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="6931" href="Monad.ElgotMonad.html#2104" class="Function">†-resp-≈</a> <a id="6940" class="Symbol">(</a><a id="6941" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="6951" class="Symbol">(</a><a id="6952" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="6961" class="Symbol">(</a><a id="6962" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="6972" class="Symbol">(</a><a id="6973" href="Categories.Functor.Core.html#696" class="Function">F-resp-≈</a> <a id="6982" href="Categories.Object.Coproduct.html#569" class="Function">inject₁</a><a id="6989" class="Symbol">))</a> <a id="6992" class="Symbol">(</a><a id="6993" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="7003" class="Symbol">(</a><a id="7004" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="7010" href="Categories.Object.Coproduct.html#602" class="Function">inject₂</a><a id="7017" class="Symbol">))))</a> <a id="7022" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="7032" class="Symbol">(</a><a id="7033" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="7035" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="7039" class="Symbol">_</a> <a id="7041" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7043" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7046" class="Symbol">(</a><a id="7047" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="7049" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7052" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="7055" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7057" href="Monad.ElgotMonad.html#5967" class="Bound">h</a> <a id="7059" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="7061" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="7065" class="Symbol">_</a> <a id="7067" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7069" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="7072" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="7074" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7076" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="7078" class="Symbol">)</a> <a id="7080" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="7082" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="7086" class="Symbol">_</a> <a id="7088" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7090" class="Symbol">(</a><a id="7091" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="7095" class="Symbol">_</a> <a id="7097" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7099" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="7101" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7104" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="7107" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7109" href="Monad.ElgotMonad.html#5967" class="Bound">h</a> <a id="7111" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="7113" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="7117" class="Symbol">_</a> <a id="7119" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7121" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="7124" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="7125" class="Symbol">)</a> <a id="7127" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7129" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="7132" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="7134" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7136" href="Monad.ElgotMonad.html#5965" class="Bound">f</a><a id="7137" class="Symbol">)</a><a id="7138" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="7146" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="7150" href="Monad.ElgotMonad.html#2104" class="Function">†-resp-≈</a> <a id="7159" class="Symbol">(</a><a id="7160" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="7170" class="Symbol">(</a><a id="7171" href="Categories.Object.Coproduct.html#816" class="Function">[]-cong₂</a> <a id="7180" class="Symbol">(</a><a id="7181" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="7187" class="Symbol">(</a><a id="7188" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="7192" href="Categories.Functor.Core.html#565" class="Function">homomorphism</a><a id="7204" class="Symbol">))</a> <a id="7207" class="Symbol">(</a><a id="7208" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="7214" class="Symbol">(</a><a id="7215" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="7221" class="Symbol">(</a><a id="7222" href="Categories.NaturalTransformation.Core.html#1043" class="Function">η.sym-commute</a> <a id="7236" class="Symbol">_)))))</a> <a id="7243" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="7253" class="Symbol">(</a><a id="7254" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="7256" class="Symbol">(</a><a id="7257" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="7261" class="Symbol">_</a> <a id="7263" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7265" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7268" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="7270" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7273" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="7276" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7278" href="Monad.ElgotMonad.html#5967" class="Bound">h</a> <a id="7280" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="7282" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="7286" class="Symbol">_</a> <a id="7288" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7290" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="7293" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="7294" class="Symbol">)</a> <a id="7296" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7298" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7301" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="7304" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="7306" class="Symbol">(</a><a id="7307" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="7311" class="Symbol">_</a> <a id="7313" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7315" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7318" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="7320" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7323" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="7326" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7328" href="Monad.ElgotMonad.html#5967" class="Bound">h</a> <a id="7330" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="7332" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="7336" class="Symbol">_</a> <a id="7338" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7340" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="7343" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="7344" class="Symbol">)</a> <a id="7346" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7348" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="7352" class="Symbol">_</a> <a id="7354" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7356" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="7359" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="7361" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7363" href="Monad.ElgotMonad.html#5965" class="Bound">f</a><a id="7364" class="Symbol">)</a><a id="7365" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="7367" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="7371" href="Monad.ElgotMonad.html#2104" class="Function">†-resp-≈</a> <a id="7380" class="Symbol">(</a><a id="7381" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="7387" href="Categories.Category.Cocartesian.html#2736" class="Function">∘[]</a><a id="7390" class="Symbol">)</a> <a id="7392" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="7402" class="Symbol">((</a><a id="7404" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="7408" class="Symbol">_</a> <a id="7410" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7412" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7415" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="7417" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7420" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="7423" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7425" href="Monad.ElgotMonad.html#5967" class="Bound">h</a> <a id="7427" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="7429" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="7433" class="Symbol">_</a> <a id="7435" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7437" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="7440" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a><a id="7441" class="Symbol">)</a> <a id="7443" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7445" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="7447" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7450" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="7453" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="7455" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="7459" class="Symbol">_</a> <a id="7461" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7463" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="7466" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="7468" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7470" href="Monad.ElgotMonad.html#5965" class="Bound">f</a><a id="7471" class="Symbol">)</a><a id="7472" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="7516" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="7520" href="Monad.ElgotMonad.html#2291" class="Function">Naturality</a> <a id="7531" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="7541" class="Symbol">(</a><a id="7542" href="Categories.NaturalTransformation.Core.html#783" class="Function">μ.η</a> <a id="7546" href="Monad.ElgotMonad.html#5958" class="Bound">Y</a> <a id="7548" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7550" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7553" href="Monad.ElgotMonad.html#5967" class="Bound">h</a><a id="7554" class="Symbol">)</a> <a id="7556" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7558" class="Symbol">(</a><a id="7559" href="Categories.Object.Coproduct.html#532" class="Function Operator">[</a> <a id="7561" href="Monad.ElgotMonad.html#7809" class="Function">T₁</a> <a id="7564" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a> <a id="7567" href="Categories.Object.Coproduct.html#532" class="Function Operator">,</a> <a id="7570" href="Categories.NaturalTransformation.Core.html#783" class="Function">η.η</a> <a id="7574" class="Symbol">_</a> <a id="7576" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7578" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a> <a id="7581" href="Categories.Object.Coproduct.html#532" class="Function Operator">]</a> <a id="7583" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7585" href="Monad.ElgotMonad.html#5965" class="Bound">f</a><a id="7586" class="Symbol">)</a><a id="7587" href="Monad.ElgotMonad.html#2057" class="Function Operator"></a> <a id="7655" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="7664" class="Symbol">}</a>
<a id="7671" class="Symbol">}</a>
<a id="7677" class="Keyword">where</a>
<a id="7689" class="Keyword">open</a> <a id="7694" href="Monad.ElgotMonad.html#2678" class="Module">ElgotMonad</a> <a id="7705" href="Monad.ElgotMonad.html#2976" class="Bound">EM</a>
<a id="7714" class="Keyword">module</a> <a id="7721" href="Monad.ElgotMonad.html#7721" class="Module">T</a> <a id="7723" class="Symbol">=</a> <a id="7725" href="Categories.Monad.html#454" class="Module">Monad</a> <a id="7731" href="Monad.ElgotMonad.html#2729" class="Field">T</a>
<a id="7739" class="Keyword">open</a> <a id="7744" href="Monad.ElgotMonad.html#7721" class="Module">T</a> <a id="7746" class="Keyword">using</a> <a id="7752" class="Symbol">(</a><a id="7753" href="Categories.Monad.html#525" class="Function">F</a><a id="7754" class="Symbol">;</a> <a id="7756" href="Categories.Monad.html#547" class="Function">η</a><a id="7757" class="Symbol">;</a> <a id="7759" href="Categories.Monad.html#583" class="Function">μ</a><a id="7760" class="Symbol">)</a>
<a id="7768" class="Keyword">open</a> <a id="7773" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="7781" href="Categories.Monad.html#525" class="Function">F</a> <a id="7783" class="Keyword">renaming</a> <a id="7792" class="Symbol">(</a><a id="7793" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="7796" class="Symbol">to</a> <a id="7799" class="Field">T₀</a><a id="7801" class="Symbol">;</a> <a id="7803" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="7806" class="Symbol">to</a> <a id="7809" class="Field">T₁</a><a id="7811" class="Symbol">)</a>
</pre>