mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
202 lines
206 KiB
Markdown
202 lines
206 KiB
Markdown
|
<!--
|
|||
|
<pre class="Agda"><a id="14" class="Keyword">open</a> <a id="19" class="Keyword">import</a> <a id="26" href="Level.html" class="Module">Level</a>
|
|||
|
<a id="32" class="Keyword">open</a> <a id="37" class="Keyword">import</a> <a id="44" href="Category.Ambient.html" class="Module">Category.Ambient</a> <a id="61" class="Keyword">using</a> <a id="67" class="Symbol">(</a><a id="68" href="Category.Ambient.html#1681" class="Record">Ambient</a><a id="75" class="Symbol">)</a>
|
|||
|
<a id="77" class="Keyword">open</a> <a id="82" class="Keyword">import</a> <a id="89" href="Categories.FreeObjects.Free.html" class="Module">Categories.FreeObjects.Free</a>
|
|||
|
<a id="117" class="Keyword">open</a> <a id="122" class="Keyword">import</a> <a id="129" href="Categories.Object.Initial.html" class="Module">Categories.Object.Initial</a>
|
|||
|
<a id="155" class="Keyword">open</a> <a id="160" class="Keyword">import</a> <a id="167" href="Categories.NaturalTransformation.html" class="Module">Categories.NaturalTransformation</a>
|
|||
|
<a id="200" class="Keyword">open</a> <a id="205" class="Keyword">import</a> <a id="212" href="Categories.NaturalTransformation.Equivalence.html" class="Module">Categories.NaturalTransformation.Equivalence</a>
|
|||
|
<a id="257" class="Keyword">open</a> <a id="262" class="Keyword">import</a> <a id="269" href="Categories.Monad.html" class="Module">Categories.Monad</a>
|
|||
|
<a id="286" class="Keyword">open</a> <a id="291" class="Keyword">import</a> <a id="298" href="Categories.Monad.Strong.html" class="Module">Categories.Monad.Strong</a>
|
|||
|
<a id="322" class="Keyword">open</a> <a id="327" class="Keyword">import</a> <a id="334" href="Categories.Monad.Relative.html" class="Module">Categories.Monad.Relative</a> <a id="360" class="Keyword">renaming</a> <a id="369" class="Symbol">(</a><a id="370" href="Categories.Monad.Relative.html#602" class="Record">Monad</a> <a id="376" class="Symbol">to</a> <a id="379" class="Record">RMonad</a><a id="385" class="Symbol">)</a>
|
|||
|
<a id="387" class="Keyword">open</a> <a id="392" class="Keyword">import</a> <a id="399" href="Categories.Monad.Construction.Kleisli.html" class="Module">Categories.Monad.Construction.Kleisli</a>
|
|||
|
<a id="437" class="Keyword">open</a> <a id="442" class="Keyword">import</a> <a id="449" href="Data.Product.html" class="Module">Data.Product</a> <a id="462" class="Keyword">using</a> <a id="468" class="Symbol">(</a><a id="469" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="472" class="Symbol">)</a>
|
|||
|
<a id="474" class="Keyword">open</a> <a id="479" class="Keyword">import</a> <a id="486" href="Categories.Functor.Core.html" class="Module">Categories.Functor.Core</a>
|
|||
|
<a id="510" class="Keyword">import</a> <a id="517" href="Monad.Instance.K.html" class="Module">Monad.Instance.K</a> <a id="534" class="Symbol">as</a> <a id="537" class="Module">MIK</a>
|
|||
|
</pre>-->
|
|||
|
|
|||
|
<pre class="Agda"><a id="558" class="Keyword">module</a> <a id="565" href="Monad.Instance.K.StrongPreElgot.html" class="Module">Monad.Instance.K.StrongPreElgot</a> <a id="597" class="Symbol">{</a><a id="598" href="Monad.Instance.K.StrongPreElgot.html#598" class="Bound">o</a> <a id="600" href="Monad.Instance.K.StrongPreElgot.html#600" class="Bound">ℓ</a> <a id="602" href="Monad.Instance.K.StrongPreElgot.html#602" class="Bound">e</a><a id="603" class="Symbol">}</a> <a id="605" class="Symbol">(</a><a id="606" href="Monad.Instance.K.StrongPreElgot.html#606" class="Bound">ambient</a> <a id="614" class="Symbol">:</a> <a id="616" href="Category.Ambient.html#1681" class="Record">Ambient</a> <a id="624" href="Monad.Instance.K.StrongPreElgot.html#598" class="Bound">o</a> <a id="626" href="Monad.Instance.K.StrongPreElgot.html#600" class="Bound">ℓ</a> <a id="628" href="Monad.Instance.K.StrongPreElgot.html#602" class="Bound">e</a><a id="629" class="Symbol">)</a> <a id="631" class="Symbol">(</a><a id="632" href="Monad.Instance.K.StrongPreElgot.html#632" class="Bound">MK</a> <a id="635" class="Symbol">:</a> <a id="637" href="Monad.Instance.K.html#1123" class="Record">MIK.MonadK</a> <a id="648" href="Monad.Instance.K.StrongPreElgot.html#606" class="Bound">ambient</a><a id="655" class="Symbol">)</a> <a id="657" class="Keyword">where</a>
|
|||
|
<a id="663" class="Keyword">open</a> <a id="668" href="Category.Ambient.html#1681" class="Module">Ambient</a> <a id="676" href="Monad.Instance.K.StrongPreElgot.html#606" class="Bound">ambient</a>
|
|||
|
<a id="684" class="Keyword">open</a> <a id="689" href="Monad.Instance.K.html" class="Module">MIK</a> <a id="693" href="Monad.Instance.K.StrongPreElgot.html#606" class="Bound">ambient</a>
|
|||
|
<a id="701" class="Keyword">open</a> <a id="706" href="Monad.Instance.K.html#1123" class="Module">MonadK</a> <a id="713" href="Monad.Instance.K.StrongPreElgot.html#632" class="Bound">MK</a>
|
|||
|
<a id="716" class="Keyword">open</a> <a id="721" class="Keyword">import</a> <a id="728" href="Algebra.Elgot.html" class="Module">Algebra.Elgot</a> <a id="742" href="Categories.Category.Extensive.html#734" class="Function">cocartesian</a>
|
|||
|
<a id="754" class="Keyword">open</a> <a id="759" class="Keyword">import</a> <a id="766" href="Algebra.Elgot.Free.html" class="Module">Algebra.Elgot.Free</a> <a id="785" href="Categories.Category.Extensive.html#734" class="Function">cocartesian</a>
|
|||
|
<a id="797" class="Keyword">open</a> <a id="802" class="Keyword">import</a> <a id="809" href="Algebra.Elgot.Stable.html" class="Module">Algebra.Elgot.Stable</a> <a id="830" href="Category.Ambient.html#2762" class="Function">distributive</a>
|
|||
|
<a id="843" class="Keyword">open</a> <a id="848" class="Keyword">import</a> <a id="855" href="Monad.PreElgot.html" class="Module">Monad.PreElgot</a> <a id="870" href="Monad.Instance.K.StrongPreElgot.html#606" class="Bound">ambient</a>
|
|||
|
<a id="878" class="Keyword">open</a> <a id="883" class="Keyword">import</a> <a id="890" href="Monad.Instance.K.html" class="Module">Monad.Instance.K</a> <a id="907" href="Monad.Instance.K.StrongPreElgot.html#606" class="Bound">ambient</a>
|
|||
|
<a id="915" class="Keyword">open</a> <a id="920" class="Keyword">import</a> <a id="927" href="Monad.Instance.K.Commutative.html" class="Module">Monad.Instance.K.Commutative</a> <a id="956" href="Monad.Instance.K.StrongPreElgot.html#606" class="Bound">ambient</a> <a id="964" href="Monad.Instance.K.StrongPreElgot.html#632" class="Bound">MK</a>
|
|||
|
<a id="967" class="Keyword">open</a> <a id="972" class="Keyword">import</a> <a id="979" href="Monad.Instance.K.Strong.html" class="Module">Monad.Instance.K.Strong</a> <a id="1003" href="Monad.Instance.K.StrongPreElgot.html#606" class="Bound">ambient</a> <a id="1011" href="Monad.Instance.K.StrongPreElgot.html#632" class="Bound">MK</a>
|
|||
|
<a id="1014" class="Keyword">open</a> <a id="1019" class="Keyword">import</a> <a id="1026" href="Monad.Instance.K.PreElgot.html" class="Module">Monad.Instance.K.PreElgot</a> <a id="1052" href="Monad.Instance.K.StrongPreElgot.html#606" class="Bound">ambient</a> <a id="1060" href="Monad.Instance.K.StrongPreElgot.html#632" class="Bound">MK</a>
|
|||
|
<a id="1063" class="Keyword">open</a> <a id="1068" class="Keyword">import</a> <a id="1075" href="Category.Construction.StrongPreElgotMonads.html" class="Module">Category.Construction.StrongPreElgotMonads</a> <a id="1118" href="Monad.Instance.K.StrongPreElgot.html#606" class="Bound">ambient</a>
|
|||
|
<a id="1126" class="Keyword">open</a> <a id="1131" class="Keyword">import</a> <a id="1138" href="Category.Construction.ElgotAlgebras.html" class="Module">Category.Construction.ElgotAlgebras</a> <a id="1174" href="Categories.Category.Extensive.html#734" class="Function">cocartesian</a>
|
|||
|
|
|||
|
<a id="1187" class="Keyword">open</a> <a id="1192" href="Categories.Category.Core.html#1530" class="Module">Equiv</a>
|
|||
|
<a id="1198" class="Keyword">open</a> <a id="1203" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
|
|||
|
<a id="1216" class="Keyword">open</a> <a id="1221" href="Category.Ambient.html#9087" class="Module">MR</a> <a id="1224" href="Category.Ambient.html#1757" class="Function">C</a>
|
|||
|
<a id="1226" class="Keyword">open</a> <a id="1231" href="Category.Ambient.html#9069" class="Module">M</a> <a id="1233" href="Category.Ambient.html#1757" class="Function">C</a>
|
|||
|
</pre>
|
|||
|
# K is the initial strong pre-Elgot monad
|
|||
|
|
|||
|
<pre class="Agda"><a id="isStrongPreElgot"></a><a id="1291" href="Monad.Instance.K.StrongPreElgot.html#1291" class="Function">isStrongPreElgot</a> <a id="1308" class="Symbol">:</a> <a id="1310" href="Monad.PreElgot.html#1307" class="Record">IsStrongPreElgot</a> <a id="1327" href="Monad.Instance.K.Strong.html#21664" class="Function">KStrong</a>
|
|||
|
<a id="1335" href="Monad.Instance.K.StrongPreElgot.html#1291" class="Function">isStrongPreElgot</a> <a id="1352" class="Symbol">=</a> <a id="1354" class="Keyword">record</a>
|
|||
|
<a id="1364" class="Symbol">{</a> <a id="1366" href="Monad.PreElgot.html#1488" class="Field">preElgot</a> <a id="1375" class="Symbol">=</a> <a id="1377" href="Monad.Instance.K.PreElgot.html#1025" class="Function">isPreElgot</a>
|
|||
|
<a id="1391" class="Symbol">;</a> <a id="1393" href="Monad.PreElgot.html#1614" class="Field">strengthen-preserves</a> <a id="1414" class="Symbol">=</a> <a id="1416" href="Monad.Instance.K.Strong.html#5557" class="Function">τ-comm</a>
|
|||
|
<a id="1426" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="strongPreElgot"></a><a id="1429" href="Monad.Instance.K.StrongPreElgot.html#1429" class="Function">strongPreElgot</a> <a id="1444" class="Symbol">:</a> <a id="1446" href="Monad.PreElgot.html#1819" class="Record">StrongPreElgotMonad</a>
|
|||
|
<a id="1466" href="Monad.Instance.K.StrongPreElgot.html#1429" class="Function">strongPreElgot</a> <a id="1481" class="Symbol">=</a> <a id="1483" class="Keyword">record</a>
|
|||
|
<a id="1493" class="Symbol">{</a> <a id="1495" href="Monad.PreElgot.html#1879" class="Field">SM</a> <a id="1498" class="Symbol">=</a> <a id="1500" href="Monad.Instance.K.Strong.html#21664" class="Function">KStrong</a>
|
|||
|
<a id="1511" class="Symbol">;</a> <a id="1513" href="Monad.PreElgot.html#1911" class="Field">isStrongPreElgot</a> <a id="1530" class="Symbol">=</a> <a id="1532" href="Monad.Instance.K.StrongPreElgot.html#1291" class="Function">isStrongPreElgot</a>
|
|||
|
<a id="1552" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="isInitialStrongPreElgot"></a><a id="1555" href="Monad.Instance.K.StrongPreElgot.html#1555" class="Function">isInitialStrongPreElgot</a> <a id="1579" class="Symbol">:</a> <a id="1581" href="Categories.Object.Initial.html#422" class="Record">IsInitial</a> <a id="1591" href="Category.Construction.StrongPreElgotMonads.html#1914" class="Function">StrongPreElgotMonads</a> <a id="1612" href="Monad.Instance.K.StrongPreElgot.html#1429" class="Function">strongPreElgot</a>
|
|||
|
<a id="1627" href="Monad.Instance.K.StrongPreElgot.html#1555" class="Function">isInitialStrongPreElgot</a> <a id="1651" class="Symbol">=</a> <a id="1653" class="Keyword">record</a> <a id="1660" class="Symbol">{</a> <a id="1662" href="Categories.Object.Initial.html#478" class="Field">!</a> <a id="1664" class="Symbol">=</a> <a id="1666" href="Monad.Instance.K.StrongPreElgot.html#1706" class="Function">!′</a> <a id="1669" class="Symbol">;</a> <a id="1671" href="Categories.Object.Initial.html#506" class="Field">!-unique</a> <a id="1680" class="Symbol">=</a> <a id="1682" href="Monad.Instance.K.StrongPreElgot.html#14727" class="Function">!-unique′</a> <a id="1692" class="Symbol">}</a>
|
|||
|
<a id="1696" class="Keyword">where</a>
|
|||
|
<a id="1706" href="Monad.Instance.K.StrongPreElgot.html#1706" class="Function">!′</a> <a id="1709" class="Symbol">:</a> <a id="1711" class="Symbol">∀</a> <a id="1713" class="Symbol">{</a><a id="1714" href="Monad.Instance.K.StrongPreElgot.html#1714" class="Bound">A</a> <a id="1716" class="Symbol">:</a> <a id="1718" href="Monad.PreElgot.html#1819" class="Record">StrongPreElgotMonad</a><a id="1737" class="Symbol">}</a> <a id="1739" class="Symbol">→</a> <a id="1741" href="Category.Construction.StrongPreElgotMonads.html#1408" class="Record">StrongPreElgotMonad-Morphism</a> <a id="1770" href="Monad.Instance.K.StrongPreElgot.html#1429" class="Function">strongPreElgot</a> <a id="1785" href="Monad.Instance.K.StrongPreElgot.html#1714" class="Bound">A</a>
|
|||
|
<a id="1791" href="Monad.Instance.K.StrongPreElgot.html#1706" class="Function">!′</a> <a id="1794" class="Symbol">{</a><a id="1795" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a><a id="1796" class="Symbol">}</a> <a id="1798" class="Symbol">=</a> <a id="1800" class="Keyword">record</a>
|
|||
|
<a id="1813" class="Symbol">{</a> <a id="1815" href="Category.Construction.StrongPreElgotMonads.html#1477" class="Field">α</a> <a id="1817" class="Symbol">=</a> <a id="1819" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="1828" class="Symbol">(</a><a id="1829" class="Keyword">record</a> <a id="1836" class="Symbol">{</a> <a id="1838" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="1840" class="Symbol">=</a> <a id="1842" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="1845" class="Symbol">;</a> <a id="1847" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="1855" class="Symbol">=</a> <a id="1857" href="Monad.Instance.K.StrongPreElgot.html#3900" class="Function">commute</a> <a id="1865" class="Symbol">})</a>
|
|||
|
<a id="1874" class="Symbol">;</a> <a id="1876" href="Category.Construction.StrongPreElgotMonads.html#1568" class="Field">α-η</a> <a id="1880" class="Symbol">=</a> <a id="1882" href="Monad.Instance.K.StrongPreElgot.html#7035" class="Function">α-η</a>
|
|||
|
<a id="1892" class="Symbol">;</a> <a id="1894" href="Category.Construction.StrongPreElgotMonads.html#1624" class="Field">α-μ</a> <a id="1898" class="Symbol">=</a> <a id="1900" href="Monad.Instance.K.StrongPreElgot.html#7151" class="Function">α-μ</a>
|
|||
|
<a id="1911" class="Symbol">;</a> <a id="1913" href="Category.Construction.StrongPreElgotMonads.html#1714" class="Field">α-strength</a> <a id="1924" class="Symbol">=</a> <a id="1926" href="Monad.Instance.K.StrongPreElgot.html#11162" class="Function">α-strength</a>
|
|||
|
<a id="1944" class="Symbol">;</a> <a id="1946" href="Category.Construction.StrongPreElgotMonads.html#1827" class="Field">α-preserves</a> <a id="1958" class="Symbol">=</a> <a id="1960" class="Symbol">λ</a> <a id="1962" class="Symbol">{</a><a id="1963" href="Monad.Instance.K.StrongPreElgot.html#1963" class="Bound">X</a><a id="1964" class="Symbol">}</a> <a id="1966" class="Symbol">{</a><a id="1967" href="Monad.Instance.K.StrongPreElgot.html#1967" class="Bound">B</a><a id="1968" class="Symbol">}</a> <a id="1970" href="Monad.Instance.K.StrongPreElgot.html#1970" class="Bound">f</a> <a id="1972" class="Symbol">→</a> <a id="1974" href="Category.Construction.ElgotAlgebras.html#812" class="Field">Elgot-Algebra-Morphism.preserves</a> <a id="2007" class="Symbol">(((</a><a id="2010" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="2023" href="Monad.Instance.K.StrongPreElgot.html#1967" class="Bound">B</a><a id="2024" class="Symbol">)</a> <a id="2026" href="Categories.FreeObjects.Free.html#880" class="Field Operator">FreeObject.*</a><a id="2038" class="Symbol">)</a> <a id="2040" class="Symbol">{</a><a id="2041" class="Argument">A</a> <a id="2043" class="Symbol">=</a> <a id="2045" class="Keyword">record</a> <a id="2052" class="Symbol">{</a> <a id="2054" href="Algebra.Elgot.html#16018" class="Field">A</a> <a id="2056" class="Symbol">=</a> <a id="2058" href="Categories.Functor.Core.html#432" class="Function">T.F.F₀</a> <a id="2065" href="Monad.Instance.K.StrongPreElgot.html#1967" class="Bound">B</a> <a id="2067" class="Symbol">;</a> <a id="2069" href="Algebra.Elgot.html#16032" class="Field">algebra</a> <a id="2077" class="Symbol">=</a> <a id="2079" href="Monad.PreElgot.html#815" class="Function">StrongPreElgotMonad.elgotalgebras</a> <a id="2113" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a> <a id="2115" class="Symbol">}}</a> <a id="2118" class="Symbol">(</a><a id="2119" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="2125" href="Monad.Instance.K.StrongPreElgot.html#1967" class="Bound">B</a><a id="2126" class="Symbol">))</a>
|
|||
|
<a id="2136" class="Symbol">}</a>
|
|||
|
<a id="2144" class="Keyword">where</a>
|
|||
|
<a id="2158" class="Keyword">open</a> <a id="2163" href="Monad.PreElgot.html#1819" class="Module">StrongPreElgotMonad</a> <a id="2183" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a> <a id="2185" class="Keyword">using</a> <a id="2191" class="Symbol">(</a><a id="2192" href="Monad.PreElgot.html#1879" class="Field">SM</a><a id="2194" class="Symbol">)</a>
|
|||
|
<a id="2204" class="Keyword">module</a> <a id="2211" href="Monad.Instance.K.StrongPreElgot.html#2211" class="Module">SM</a> <a id="2214" class="Symbol">=</a> <a id="2216" href="Categories.Monad.Strong.html#1832" class="Module">StrongMonad</a> <a id="2228" href="Monad.PreElgot.html#1879" class="Field">SM</a>
|
|||
|
<a id="2239" class="Keyword">open</a> <a id="2244" href="Monad.Instance.K.StrongPreElgot.html#2211" class="Module">SM</a> <a id="2247" class="Keyword">using</a> <a id="2253" class="Symbol">(</a><a id="2254" href="Categories.Monad.Strong.html#1060" class="Function">strengthen</a><a id="2264" class="Symbol">)</a> <a id="2266" class="Keyword">renaming</a> <a id="2275" class="Symbol">(</a><a id="2276" href="Categories.Monad.Strong.html#1918" class="Function">M</a> <a id="2278" class="Symbol">to</a> <a id="2281" class="Function">T</a><a id="2282" class="Symbol">)</a>
|
|||
|
<a id="2292" class="Keyword">open</a> <a id="2297" href="Monad.Instance.K.StrongPreElgot.html#379" class="Module">RMonad</a> <a id="2304" class="Symbol">(</a><a id="2305" href="Categories.Monad.Construction.Kleisli.html#2851" class="Function">Monad⇒Kleisli</a> <a id="2319" href="Category.Ambient.html#1757" class="Function">C</a> <a id="2321" href="Monad.Instance.K.StrongPreElgot.html#2281" class="Function">T</a><a id="2322" class="Symbol">)</a> <a id="2324" class="Keyword">using</a> <a id="2330" class="Symbol">(</a><a id="2331" href="Categories.Monad.Relative.html#895" class="Field">extend</a><a id="2337" class="Symbol">)</a>
|
|||
|
<a id="2347" class="Keyword">open</a> <a id="2352" href="Monad.Instance.K.html#1672" class="Module">monadK</a> <a id="2359" class="Keyword">using</a> <a id="2365" class="Symbol">()</a> <a id="2368" class="Keyword">renaming</a> <a id="2377" class="Symbol">(</a><a id="2378" href="Categories.Monad.html#547" class="Function">η</a> <a id="2380" class="Symbol">to</a> <a id="2383" class="Function">ηK</a><a id="2385" class="Symbol">;</a> <a id="2387" href="Categories.Monad.html#583" class="Function">μ</a> <a id="2389" class="Symbol">to</a> <a id="2392" class="Function">μK</a><a id="2394" class="Symbol">)</a>
|
|||
|
<a id="2404" class="Keyword">open</a> <a id="2409" href="Monad.Instance.K.Strong.html#22135" class="Module">strongK</a> <a id="2417" class="Keyword">using</a> <a id="2423" class="Symbol">()</a> <a id="2426" class="Keyword">renaming</a> <a id="2435" class="Symbol">(</a><a id="2436" href="Categories.Monad.Strong.html#1060" class="Function">strengthen</a> <a id="2447" class="Symbol">to</a> <a id="2450" class="Function">strengthenK</a><a id="2461" class="Symbol">)</a>
|
|||
|
<a id="2471" class="Keyword">open</a> <a id="2476" href="Algebra.Elgot.html#1845" class="Module">Elgot-Algebra-on</a> <a id="2493" class="Keyword">using</a> <a id="2499" class="Symbol">(</a><a id="2500" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a><a id="2508" class="Symbol">)</a>
|
|||
|
<a id="2518" href="Monad.Instance.K.StrongPreElgot.html#2518" class="Function">T-Alg</a> <a id="2524" class="Symbol">:</a> <a id="2526" class="Symbol">∀</a> <a id="2528" class="Symbol">(</a><a id="2529" href="Monad.Instance.K.StrongPreElgot.html#2529" class="Bound">X</a> <a id="2531" class="Symbol">:</a> <a id="2533" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="2536" class="Symbol">)</a> <a id="2538" class="Symbol">→</a> <a id="2540" href="Algebra.Elgot.html#15964" class="Record">Elgot-Algebra</a>
|
|||
|
<a id="2562" href="Monad.Instance.K.StrongPreElgot.html#2518" class="Function">T-Alg</a> <a id="2568" href="Monad.Instance.K.StrongPreElgot.html#2568" class="Bound">X</a> <a id="2570" class="Symbol">=</a> <a id="2572" class="Keyword">record</a> <a id="2579" class="Symbol">{</a> <a id="2581" href="Algebra.Elgot.html#16018" class="Field">A</a> <a id="2583" class="Symbol">=</a> <a id="2585" href="Categories.Functor.Core.html#797" class="Function">T.F.₀</a> <a id="2591" href="Monad.Instance.K.StrongPreElgot.html#2568" class="Bound">X</a> <a id="2593" class="Symbol">;</a> <a id="2595" href="Algebra.Elgot.html#16032" class="Field">algebra</a> <a id="2603" class="Symbol">=</a> <a id="2605" href="Monad.PreElgot.html#815" class="Function">StrongPreElgotMonad.elgotalgebras</a> <a id="2639" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a> <a id="2641" class="Symbol">}</a>
|
|||
|
<a id="2651" href="Monad.Instance.K.StrongPreElgot.html#2651" class="Function">K-Alg</a> <a id="2657" class="Symbol">:</a> <a id="2659" class="Symbol">∀</a> <a id="2661" class="Symbol">(</a><a id="2662" href="Monad.Instance.K.StrongPreElgot.html#2662" class="Bound">X</a> <a id="2664" class="Symbol">:</a> <a id="2666" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="2669" class="Symbol">)</a> <a id="2671" class="Symbol">→</a> <a id="2673" href="Algebra.Elgot.html#15964" class="Record">Elgot-Algebra</a>
|
|||
|
<a id="2695" href="Monad.Instance.K.StrongPreElgot.html#2651" class="Function">K-Alg</a> <a id="2701" href="Monad.Instance.K.StrongPreElgot.html#2701" class="Bound">X</a> <a id="2703" class="Symbol">=</a> <a id="2705" class="Keyword">record</a> <a id="2712" class="Symbol">{</a> <a id="2714" href="Algebra.Elgot.html#16018" class="Field">A</a> <a id="2716" class="Symbol">=</a> <a id="2718" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="2722" href="Monad.Instance.K.StrongPreElgot.html#2701" class="Bound">X</a> <a id="2724" class="Symbol">;</a> <a id="2726" href="Algebra.Elgot.html#16032" class="Field">algebra</a> <a id="2734" class="Symbol">=</a> <a id="2736" href="Algebra.Elgot.html#16032" class="Field">Elgot-Algebra.algebra</a> <a id="2758" class="Symbol">(</a><a id="2759" href="Monad.Instance.K.html#1333" class="Function">algebras</a> <a id="2768" href="Monad.Instance.K.StrongPreElgot.html#2701" class="Bound">X</a><a id="2769" class="Symbol">)</a> <a id="2771" class="Symbol">}</a>
|
|||
|
<a id="2781" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="2784" class="Symbol">:</a> <a id="2786" class="Symbol">∀</a> <a id="2788" class="Symbol">(</a><a id="2789" href="Monad.Instance.K.StrongPreElgot.html#2789" class="Bound">X</a> <a id="2791" class="Symbol">:</a> <a id="2793" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="2796" class="Symbol">)</a> <a id="2798" class="Symbol">→</a> <a id="2800" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="2804" href="Monad.Instance.K.StrongPreElgot.html#2789" class="Bound">X</a> <a id="2806" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="2808" href="Categories.Functor.Core.html#797" class="Function">T.F.₀</a> <a id="2814" href="Monad.Instance.K.StrongPreElgot.html#2789" class="Bound">X</a>
|
|||
|
<a id="2824" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="2827" href="Monad.Instance.K.StrongPreElgot.html#2827" class="Bound">X</a> <a id="2829" class="Symbol">=</a> <a id="2831" href="Category.Construction.ElgotAlgebras.html#794" class="Field">Elgot-Algebra-Morphism.h</a> <a id="2856" class="Symbol">(</a><a id="2857" href="Categories.FreeObjects.Free.html#880" class="Function Operator">_*</a> <a id="2860" class="Symbol">{</a><a id="2861" class="Argument">A</a> <a id="2863" class="Symbol">=</a> <a id="2865" href="Monad.Instance.K.StrongPreElgot.html#2518" class="Function">T-Alg</a> <a id="2871" href="Monad.Instance.K.StrongPreElgot.html#2827" class="Bound">X</a><a id="2872" class="Symbol">}</a> <a id="2874" class="Symbol">(</a><a id="2875" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="2881" href="Monad.Instance.K.StrongPreElgot.html#2827" class="Bound">X</a><a id="2882" class="Symbol">))</a>
|
|||
|
<a id="2895" class="Keyword">where</a> <a id="2901" class="Keyword">open</a> <a id="2906" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="2917" class="Symbol">(</a><a id="2918" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="2931" href="Monad.Instance.K.StrongPreElgot.html#2827" class="Bound">X</a><a id="2932" class="Symbol">)</a>
|
|||
|
<a id="2942" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">_#K</a> <a id="2946" class="Symbol">=</a> <a id="2948" class="Symbol">λ</a> <a id="2950" class="Symbol">{</a><a id="2951" href="Monad.Instance.K.StrongPreElgot.html#2951" class="Bound">B</a><a id="2952" class="Symbol">}</a> <a id="2954" class="Symbol">{</a><a id="2955" href="Monad.Instance.K.StrongPreElgot.html#2955" class="Bound">C</a><a id="2956" class="Symbol">}</a> <a id="2958" href="Monad.Instance.K.StrongPreElgot.html#2958" class="Bound">f</a> <a id="2960" class="Symbol">→</a> <a id="2962" href="Algebra.Elgot.html#1938" class="Function Operator">Elgot-Algebra._#</a> <a id="2979" class="Symbol">(</a><a id="2980" href="Categories.FreeObjects.Free.html#838" class="Field">FreeObject.FX</a> <a id="2994" class="Symbol">(</a><a id="2995" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="3008" href="Monad.Instance.K.StrongPreElgot.html#2955" class="Bound">C</a><a id="3009" class="Symbol">))</a> <a id="3012" class="Symbol">{</a><a id="3013" href="Monad.Instance.K.StrongPreElgot.html#2951" class="Bound">B</a><a id="3014" class="Symbol">}</a> <a id="3016" href="Monad.Instance.K.StrongPreElgot.html#2958" class="Bound">f</a>
|
|||
|
<a id="3026" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">_#T</a> <a id="3030" class="Symbol">=</a> <a id="3032" class="Symbol">λ</a> <a id="3034" class="Symbol">{</a><a id="3035" href="Monad.Instance.K.StrongPreElgot.html#3035" class="Bound">B</a><a id="3036" class="Symbol">}</a> <a id="3038" class="Symbol">{</a><a id="3039" href="Monad.Instance.K.StrongPreElgot.html#3039" class="Bound">C</a><a id="3040" class="Symbol">}</a> <a id="3042" href="Monad.Instance.K.StrongPreElgot.html#3042" class="Bound">f</a> <a id="3044" class="Symbol">→</a> <a id="3046" href="Algebra.Elgot.html#1938" class="Function Operator">StrongPreElgotMonad.elgotalgebras._#</a> <a id="3083" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a> <a id="3085" class="Symbol">{</a><a id="3086" href="Monad.Instance.K.StrongPreElgot.html#3035" class="Bound">B</a><a id="3087" class="Symbol">}</a> <a id="3089" class="Symbol">{</a><a id="3090" href="Monad.Instance.K.StrongPreElgot.html#3039" class="Bound">C</a><a id="3091" class="Symbol">}</a> <a id="3093" href="Monad.Instance.K.StrongPreElgot.html#3042" class="Bound">f</a>
|
|||
|
<a id="3103" class="Comment">-- some preservation facts that follow immediately, since these things are elgot-algebra-morphisms.</a>
|
|||
|
<a id="3211" href="Monad.Instance.K.StrongPreElgot.html#3211" class="Function">K₁-preserves</a> <a id="3224" class="Symbol">:</a> <a id="3226" class="Symbol">∀</a> <a id="3228" class="Symbol">{</a><a id="3229" href="Monad.Instance.K.StrongPreElgot.html#3229" class="Bound">X</a> <a id="3231" href="Monad.Instance.K.StrongPreElgot.html#3231" class="Bound">Y</a> <a id="3233" href="Monad.Instance.K.StrongPreElgot.html#3233" class="Bound">Z</a> <a id="3235" class="Symbol">:</a> <a id="3237" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="3240" class="Symbol">}</a> <a id="3242" class="Symbol">(</a><a id="3243" href="Monad.Instance.K.StrongPreElgot.html#3243" class="Bound">f</a> <a id="3245" class="Symbol">:</a> <a id="3247" href="Monad.Instance.K.StrongPreElgot.html#3229" class="Bound">X</a> <a id="3249" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="3251" href="Monad.Instance.K.StrongPreElgot.html#3231" class="Bound">Y</a><a id="3252" class="Symbol">)</a> <a id="3254" class="Symbol">(</a><a id="3255" href="Monad.Instance.K.StrongPreElgot.html#3255" class="Bound">g</a> <a id="3257" class="Symbol">:</a> <a id="3259" href="Monad.Instance.K.StrongPreElgot.html#3233" class="Bound">Z</a> <a id="3261" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="3263" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="3267" href="Monad.Instance.K.StrongPreElgot.html#3229" class="Bound">X</a> <a id="3269" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="3271" href="Monad.Instance.K.StrongPreElgot.html#3233" class="Bound">Z</a><a id="3272" class="Symbol">)</a> <a id="3274" class="Symbol">→</a> <a id="3276" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="3280" href="Monad.Instance.K.StrongPreElgot.html#3243" class="Bound">f</a> <a id="3282" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3284" class="Symbol">(</a><a id="3285" href="Monad.Instance.K.StrongPreElgot.html#3255" class="Bound">g</a> <a id="3287" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a><a id="3289" class="Symbol">)</a> <a id="3291" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="3293" class="Symbol">((</a><a id="3295" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="3299" href="Monad.Instance.K.StrongPreElgot.html#3243" class="Bound">f</a> <a id="3301" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="3304" href="Category.Ambient.html#2115" class="Function">idC</a><a id="3307" class="Symbol">)</a> <a id="3309" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3311" href="Monad.Instance.K.StrongPreElgot.html#3255" class="Bound">g</a><a id="3312" class="Symbol">)</a> <a id="3314" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a>
|
|||
|
<a id="3325" href="Monad.Instance.K.StrongPreElgot.html#3211" class="Function">K₁-preserves</a> <a id="3338" class="Symbol">{</a><a id="3339" href="Monad.Instance.K.StrongPreElgot.html#3339" class="Bound">X</a><a id="3340" class="Symbol">}</a> <a id="3342" class="Symbol">{</a><a id="3343" href="Monad.Instance.K.StrongPreElgot.html#3343" class="Bound">Y</a><a id="3344" class="Symbol">}</a> <a id="3346" class="Symbol">{</a><a id="3347" href="Monad.Instance.K.StrongPreElgot.html#3347" class="Bound">Z</a><a id="3348" class="Symbol">}</a> <a id="3350" href="Monad.Instance.K.StrongPreElgot.html#3350" class="Bound">f</a> <a id="3352" href="Monad.Instance.K.StrongPreElgot.html#3352" class="Bound">g</a> <a id="3354" class="Symbol">=</a> <a id="3356" href="Category.Construction.ElgotAlgebras.html#812" class="Field">Elgot-Algebra-Morphism.preserves</a> <a id="3389" class="Symbol">(((</a><a id="3392" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="3405" href="Monad.Instance.K.StrongPreElgot.html#3339" class="Bound">X</a><a id="3406" class="Symbol">)</a> <a id="3408" href="Categories.FreeObjects.Free.html#880" class="Field Operator">FreeObject.*</a><a id="3420" class="Symbol">)</a> <a id="3422" class="Symbol">{</a><a id="3423" class="Argument">A</a> <a id="3425" class="Symbol">=</a> <a id="3427" href="Monad.Instance.K.StrongPreElgot.html#2651" class="Function">K-Alg</a> <a id="3433" href="Monad.Instance.K.StrongPreElgot.html#3343" class="Bound">Y</a><a id="3434" class="Symbol">}</a> <a id="3436" class="Symbol">(</a><a id="3437" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="3442" class="Symbol">_</a> <a id="3444" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3446" href="Monad.Instance.K.StrongPreElgot.html#3350" class="Bound">f</a><a id="3447" class="Symbol">))</a>
|
|||
|
<a id="3458" href="Monad.Instance.K.StrongPreElgot.html#3458" class="Function">μK-preserves</a> <a id="3471" class="Symbol">:</a> <a id="3473" class="Symbol">∀</a> <a id="3475" class="Symbol">{</a><a id="3476" href="Monad.Instance.K.StrongPreElgot.html#3476" class="Bound">X</a> <a id="3478" href="Monad.Instance.K.StrongPreElgot.html#3478" class="Bound">Y</a> <a id="3480" class="Symbol">:</a> <a id="3482" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="3485" class="Symbol">}</a> <a id="3487" class="Symbol">(</a><a id="3488" href="Monad.Instance.K.StrongPreElgot.html#3488" class="Bound">g</a> <a id="3490" class="Symbol">:</a> <a id="3492" href="Monad.Instance.K.StrongPreElgot.html#3478" class="Bound">Y</a> <a id="3494" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="3496" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="3500" class="Symbol">(</a><a id="3501" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="3505" href="Monad.Instance.K.StrongPreElgot.html#3476" class="Bound">X</a><a id="3506" class="Symbol">)</a> <a id="3508" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="3510" href="Monad.Instance.K.StrongPreElgot.html#3478" class="Bound">Y</a><a id="3511" class="Symbol">)</a> <a id="3513" class="Symbol">→</a> <a id="3515" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="3520" href="Monad.Instance.K.StrongPreElgot.html#3476" class="Bound">X</a> <a id="3522" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3524" href="Monad.Instance.K.StrongPreElgot.html#3488" class="Bound">g</a> <a id="3526" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a> <a id="3529" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="3531" class="Symbol">((</a><a id="3533" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="3538" href="Monad.Instance.K.StrongPreElgot.html#3476" class="Bound">X</a> <a id="3540" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="3543" href="Category.Ambient.html#2115" class="Function">idC</a><a id="3546" class="Symbol">)</a> <a id="3548" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3550" href="Monad.Instance.K.StrongPreElgot.html#3488" class="Bound">g</a><a id="3551" class="Symbol">)</a> <a id="3553" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a>
|
|||
|
<a id="3564" href="Monad.Instance.K.StrongPreElgot.html#3458" class="Function">μK-preserves</a> <a id="3577" class="Symbol">{</a><a id="3578" href="Monad.Instance.K.StrongPreElgot.html#3578" class="Bound">X</a><a id="3579" class="Symbol">}</a> <a id="3581" href="Monad.Instance.K.StrongPreElgot.html#3581" class="Bound">g</a> <a id="3583" class="Symbol">=</a> <a id="3585" href="Category.Construction.ElgotAlgebras.html#812" class="Field">Elgot-Algebra-Morphism.preserves</a> <a id="3618" class="Symbol">(((</a><a id="3621" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="3634" class="Symbol">(</a><a id="3635" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="3639" href="Monad.Instance.K.StrongPreElgot.html#3578" class="Bound">X</a><a id="3640" class="Symbol">))</a> <a id="3643" href="Categories.FreeObjects.Free.html#880" class="Field Operator">FreeObject.*</a><a id="3655" class="Symbol">)</a> <a id="3657" class="Symbol">{</a><a id="3658" class="Argument">A</a> <a id="3660" class="Symbol">=</a> <a id="3662" href="Monad.Instance.K.StrongPreElgot.html#2651" class="Function">K-Alg</a> <a id="3668" href="Monad.Instance.K.StrongPreElgot.html#3578" class="Bound">X</a><a id="3669" class="Symbol">}</a> <a id="3671" href="Category.Ambient.html#2115" class="Function">idC</a><a id="3674" class="Symbol">)</a>
|
|||
|
<a id="3684" href="Monad.Instance.K.StrongPreElgot.html#3684" class="Function">η'-preserves</a> <a id="3697" class="Symbol">:</a> <a id="3699" class="Symbol">∀</a> <a id="3701" class="Symbol">{</a><a id="3702" href="Monad.Instance.K.StrongPreElgot.html#3702" class="Bound">X</a> <a id="3704" href="Monad.Instance.K.StrongPreElgot.html#3704" class="Bound">Y</a> <a id="3706" class="Symbol">:</a> <a id="3708" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="3711" class="Symbol">}</a> <a id="3713" class="Symbol">(</a><a id="3714" href="Monad.Instance.K.StrongPreElgot.html#3714" class="Bound">g</a> <a id="3716" class="Symbol">:</a> <a id="3718" href="Monad.Instance.K.StrongPreElgot.html#3704" class="Bound">Y</a> <a id="3720" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="3722" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="3726" href="Monad.Instance.K.StrongPreElgot.html#3702" class="Bound">X</a> <a id="3728" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="3730" href="Monad.Instance.K.StrongPreElgot.html#3704" class="Bound">Y</a><a id="3731" class="Symbol">)</a> <a id="3733" class="Symbol">→</a> <a id="3735" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="3738" href="Monad.Instance.K.StrongPreElgot.html#3702" class="Bound">X</a> <a id="3740" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3742" href="Monad.Instance.K.StrongPreElgot.html#3714" class="Bound">g</a> <a id="3744" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a> <a id="3747" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="3749" class="Symbol">((</a><a id="3751" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="3754" href="Monad.Instance.K.StrongPreElgot.html#3702" class="Bound">X</a> <a id="3756" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="3759" href="Category.Ambient.html#2115" class="Function">idC</a><a id="3762" class="Symbol">)</a> <a id="3764" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3766" href="Monad.Instance.K.StrongPreElgot.html#3714" class="Bound">g</a><a id="3767" class="Symbol">)</a> <a id="3769" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a>
|
|||
|
<a id="3780" href="Monad.Instance.K.StrongPreElgot.html#3684" class="Function">η'-preserves</a> <a id="3793" class="Symbol">{</a><a id="3794" href="Monad.Instance.K.StrongPreElgot.html#3794" class="Bound">X</a><a id="3795" class="Symbol">}</a> <a id="3797" href="Monad.Instance.K.StrongPreElgot.html#3797" class="Bound">g</a> <a id="3799" class="Symbol">=</a> <a id="3801" href="Category.Construction.ElgotAlgebras.html#812" class="Field">Elgot-Algebra-Morphism.preserves</a> <a id="3834" class="Symbol">(((</a><a id="3837" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="3850" href="Monad.Instance.K.StrongPreElgot.html#3794" class="Bound">X</a><a id="3851" class="Symbol">)</a> <a id="3853" href="Categories.FreeObjects.Free.html#880" class="Field Operator">FreeObject.*</a><a id="3865" class="Symbol">)</a> <a id="3867" class="Symbol">{</a><a id="3868" class="Argument">A</a> <a id="3870" class="Symbol">=</a> <a id="3872" href="Monad.Instance.K.StrongPreElgot.html#2518" class="Function">T-Alg</a> <a id="3878" href="Monad.Instance.K.StrongPreElgot.html#3794" class="Bound">X</a><a id="3879" class="Symbol">}</a> <a id="3881" class="Symbol">(</a><a id="3882" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="3888" href="Monad.Instance.K.StrongPreElgot.html#3794" class="Bound">X</a><a id="3889" class="Symbol">))</a>
|
|||
|
<a id="3900" href="Monad.Instance.K.StrongPreElgot.html#3900" class="Function">commute</a> <a id="3908" class="Symbol">:</a> <a id="3910" class="Symbol">∀</a> <a id="3912" class="Symbol">{</a><a id="3913" href="Monad.Instance.K.StrongPreElgot.html#3913" class="Bound">X</a> <a id="3915" href="Monad.Instance.K.StrongPreElgot.html#3915" class="Bound">Y</a> <a id="3917" class="Symbol">:</a> <a id="3919" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="3922" class="Symbol">}</a> <a id="3924" class="Symbol">(</a><a id="3925" href="Monad.Instance.K.StrongPreElgot.html#3925" class="Bound">f</a> <a id="3927" class="Symbol">:</a> <a id="3929" href="Monad.Instance.K.StrongPreElgot.html#3913" class="Bound">X</a> <a id="3931" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="3933" href="Monad.Instance.K.StrongPreElgot.html#3915" class="Bound">Y</a><a id="3934" class="Symbol">)</a> <a id="3936" class="Symbol">→</a> <a id="3938" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="3941" href="Monad.Instance.K.StrongPreElgot.html#3915" class="Bound">Y</a> <a id="3943" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3945" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="3949" href="Monad.Instance.K.StrongPreElgot.html#3925" class="Bound">f</a> <a id="3951" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="3953" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="3959" href="Monad.Instance.K.StrongPreElgot.html#3925" class="Bound">f</a> <a id="3961" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3963" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="3966" href="Monad.Instance.K.StrongPreElgot.html#3913" class="Bound">X</a>
|
|||
|
<a id="3976" href="Monad.Instance.K.StrongPreElgot.html#3900" class="Function">commute</a> <a id="3984" class="Symbol">{</a><a id="3985" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a><a id="3986" class="Symbol">}</a> <a id="3988" class="Symbol">{</a><a id="3989" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a><a id="3990" class="Symbol">}</a> <a id="3992" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="3994" class="Symbol">=</a> <a id="3996" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="4012" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="4015" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="4017" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4019" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="4023" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="4076" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4079" href="Categories.FreeObjects.Free.html#1017" class="Field">FreeObject.*-uniq</a>
|
|||
|
<a id="4177" class="Symbol">(</a><a id="4178" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="4191" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a><a id="4192" class="Symbol">)</a>
|
|||
|
<a id="4274" class="Symbol">{</a><a id="4275" class="Argument">A</a> <a id="4277" class="Symbol">=</a> <a id="4279" href="Monad.Instance.K.StrongPreElgot.html#2518" class="Function">T-Alg</a> <a id="4285" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a><a id="4286" class="Symbol">}</a>
|
|||
|
<a id="4369" class="Symbol">(</a><a id="4370" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="4376" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="4378" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4380" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="4386" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a><a id="4387" class="Symbol">)</a>
|
|||
|
<a id="4470" class="Symbol">(</a><a id="4471" class="Keyword">record</a> <a id="4478" class="Symbol">{</a> <a id="4480" href="Category.Construction.ElgotAlgebras.html#794" class="Field">h</a> <a id="4482" class="Symbol">=</a> <a id="4484" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="4487" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="4489" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4491" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="4495" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="4497" class="Symbol">;</a> <a id="4499" href="Category.Construction.ElgotAlgebras.html#812" class="Field">preserves</a> <a id="4509" class="Symbol">=</a> <a id="4511" href="Monad.Instance.K.StrongPreElgot.html#5416" class="Function">pres₁</a> <a id="4517" class="Symbol">})</a>
|
|||
|
<a id="4601" href="Monad.Instance.K.StrongPreElgot.html#6702" class="Function">comm₁</a> <a id="4607" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="4619" href="Category.Construction.ElgotAlgebras.html#794" class="Field">Elgot-Algebra-Morphism.h</a> <a id="4644" class="Symbol">(</a><a id="4645" href="Categories.FreeObjects.Free.html#880" class="Field Operator">FreeObject._*</a> <a id="4659" class="Symbol">(</a><a id="4660" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="4673" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a><a id="4674" class="Symbol">)</a> <a id="4676" class="Symbol">{</a><a id="4677" class="Argument">A</a> <a id="4679" class="Symbol">=</a> <a id="4681" href="Monad.Instance.K.StrongPreElgot.html#2518" class="Function">T-Alg</a> <a id="4687" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a><a id="4688" class="Symbol">}</a> <a id="4690" class="Symbol">(</a><a id="4691" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="4697" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="4699" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4701" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="4707" class="Symbol">_))</a> <a id="4711" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4714" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="4718" class="Symbol">(</a><a id="4719" href="Categories.FreeObjects.Free.html#1017" class="Field">FreeObject.*-uniq</a>
|
|||
|
<a id="4820" class="Symbol">(</a><a id="4821" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="4834" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a><a id="4835" class="Symbol">)</a>
|
|||
|
<a id="4919" class="Symbol">{</a><a id="4920" class="Argument">A</a> <a id="4922" class="Symbol">=</a> <a id="4924" href="Monad.Instance.K.StrongPreElgot.html#2518" class="Function">T-Alg</a> <a id="4930" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a><a id="4931" class="Symbol">}</a>
|
|||
|
<a id="5016" class="Symbol">(</a><a id="5017" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="5023" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="5025" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5027" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="5033" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a><a id="5034" class="Symbol">)</a>
|
|||
|
<a id="5119" class="Symbol">(</a><a id="5120" class="Keyword">record</a> <a id="5127" class="Symbol">{</a> <a id="5129" href="Category.Construction.ElgotAlgebras.html#794" class="Field">h</a> <a id="5131" class="Symbol">=</a> <a id="5133" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="5139" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="5141" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5143" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="5146" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a> <a id="5148" class="Symbol">;</a> <a id="5150" href="Category.Construction.ElgotAlgebras.html#812" class="Field">preserves</a> <a id="5160" class="Symbol">=</a> <a id="5162" href="Monad.Instance.K.StrongPreElgot.html#5942" class="Function">pres₂</a> <a id="5168" class="Symbol">})</a>
|
|||
|
<a id="5254" class="Symbol">(</a><a id="5255" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="5261" class="Symbol">(</a><a id="5262" href="Categories.FreeObjects.Free.html#937" class="Field">FreeObject.*-lift</a> <a id="5280" class="Symbol">(</a><a id="5281" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="5294" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a><a id="5295" class="Symbol">)</a> <a id="5297" class="Symbol">(</a><a id="5298" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="5304" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a><a id="5305" class="Symbol">))))</a> <a id="5310" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="5322" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="5328" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="5330" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5332" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="5335" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a> <a id="5386" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="5398" class="Keyword">where</a>
|
|||
|
<a id="5416" href="Monad.Instance.K.StrongPreElgot.html#5416" class="Function">pres₁</a> <a id="5422" class="Symbol">:</a> <a id="5424" class="Symbol">∀</a> <a id="5426" class="Symbol">{</a><a id="5427" href="Monad.Instance.K.StrongPreElgot.html#5427" class="Bound">Z</a><a id="5428" class="Symbol">}</a> <a id="5430" class="Symbol">{</a><a id="5431" href="Monad.Instance.K.StrongPreElgot.html#5431" class="Bound">g</a> <a id="5433" class="Symbol">:</a> <a id="5435" href="Monad.Instance.K.StrongPreElgot.html#5427" class="Bound">Z</a> <a id="5437" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="5439" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="5443" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a> <a id="5445" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="5447" href="Monad.Instance.K.StrongPreElgot.html#5427" class="Bound">Z</a><a id="5448" class="Symbol">}</a> <a id="5450" class="Symbol">→</a> <a id="5452" class="Symbol">(</a><a id="5453" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="5456" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="5458" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5460" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5464" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a><a id="5465" class="Symbol">)</a> <a id="5467" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5469" href="Monad.Instance.K.StrongPreElgot.html#5431" class="Bound">g</a> <a id="5471" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a> <a id="5474" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="5476" class="Symbol">((</a><a id="5478" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="5481" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="5483" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5485" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5489" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="5491" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5494" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5497" class="Symbol">)</a> <a id="5499" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5501" href="Monad.Instance.K.StrongPreElgot.html#5431" class="Bound">g</a><a id="5502" class="Symbol">)</a> <a id="5504" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a>
|
|||
|
<a id="5519" href="Monad.Instance.K.StrongPreElgot.html#5416" class="Function">pres₁</a> <a id="5525" class="Symbol">{</a><a id="5526" href="Monad.Instance.K.StrongPreElgot.html#5526" class="Bound">Z</a><a id="5527" class="Symbol">}</a> <a id="5529" class="Symbol">{</a><a id="5530" href="Monad.Instance.K.StrongPreElgot.html#5530" class="Bound">g</a><a id="5531" class="Symbol">}</a> <a id="5533" class="Symbol">=</a> <a id="5535" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="5555" class="Symbol">(</a><a id="5556" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="5559" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="5561" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5563" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5567" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a><a id="5568" class="Symbol">)</a> <a id="5570" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5572" class="Symbol">(</a><a id="5573" href="Monad.Instance.K.StrongPreElgot.html#5530" class="Bound">g</a> <a id="5575" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a><a id="5577" class="Symbol">)</a> <a id="5597" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5600" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="5606" class="Symbol">(</a><a id="5607" href="Monad.Instance.K.StrongPreElgot.html#3211" class="Function">K₁-preserves</a> <a id="5620" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="5622" href="Monad.Instance.K.StrongPreElgot.html#5530" class="Bound">g</a><a id="5623" class="Symbol">)</a> <a id="5625" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="5641" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="5644" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="5646" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5648" class="Symbol">(((</a><a id="5651" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5655" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="5657" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5660" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5663" class="Symbol">)</a> <a id="5665" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5667" href="Monad.Instance.K.StrongPreElgot.html#5530" class="Bound">g</a><a id="5668" class="Symbol">)</a> <a id="5670" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a><a id="5672" class="Symbol">)</a> <a id="5683" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5686" href="Monad.Instance.K.StrongPreElgot.html#3684" class="Function">η'-preserves</a> <a id="5699" class="Symbol">((</a><a id="5701" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5705" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="5707" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5710" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5713" class="Symbol">)</a> <a id="5715" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5717" href="Monad.Instance.K.StrongPreElgot.html#5530" class="Bound">g</a><a id="5718" class="Symbol">)</a> <a id="5720" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="5736" class="Symbol">(((</a><a id="5739" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="5742" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="5744" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5747" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5750" class="Symbol">)</a> <a id="5752" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5754" class="Symbol">(</a><a id="5755" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5759" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="5761" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5764" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5767" class="Symbol">)</a> <a id="5769" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5771" href="Monad.Instance.K.StrongPreElgot.html#5530" class="Bound">g</a><a id="5772" class="Symbol">)</a> <a id="5774" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a><a id="5776" class="Symbol">)</a> <a id="5778" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5781" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="5790" class="Symbol">(</a><a id="5791" href="Monad.PreElgot.html#815" class="Function">StrongPreElgotMonad.elgotalgebras</a> <a id="5825" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a><a id="5826" class="Symbol">)</a> <a id="5828" class="Symbol">(</a><a id="5829" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="5835" class="Symbol">(</a><a id="5836" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="5842" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="5844" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="5853" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="5858" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="5867" class="Symbol">))</a> <a id="5870" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="5886" class="Symbol">((</a><a id="5888" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="5891" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="5893" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5895" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5899" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="5901" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5904" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5907" class="Symbol">)</a> <a id="5909" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5911" href="Monad.Instance.K.StrongPreElgot.html#5530" class="Bound">g</a><a id="5912" class="Symbol">)</a> <a id="5914" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a> <a id="5928" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="5942" href="Monad.Instance.K.StrongPreElgot.html#5942" class="Function">pres₂</a> <a id="5948" class="Symbol">:</a> <a id="5950" class="Symbol">∀</a> <a id="5952" class="Symbol">{</a><a id="5953" href="Monad.Instance.K.StrongPreElgot.html#5953" class="Bound">Z</a><a id="5954" class="Symbol">}</a> <a id="5956" class="Symbol">{</a><a id="5957" href="Monad.Instance.K.StrongPreElgot.html#5957" class="Bound">g</a> <a id="5959" class="Symbol">:</a> <a id="5961" href="Monad.Instance.K.StrongPreElgot.html#5953" class="Bound">Z</a> <a id="5963" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="5965" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="5969" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a> <a id="5971" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="5973" href="Monad.Instance.K.StrongPreElgot.html#5953" class="Bound">Z</a><a id="5974" class="Symbol">}</a> <a id="5976" class="Symbol">→</a> <a id="5978" class="Symbol">(</a><a id="5979" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="5985" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="5987" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5989" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="5992" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a><a id="5993" class="Symbol">)</a> <a id="5995" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5997" href="Monad.Instance.K.StrongPreElgot.html#5957" class="Bound">g</a> <a id="5999" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a> <a id="6002" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="6004" class="Symbol">((</a><a id="6006" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="6012" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="6014" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6016" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="6019" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a> <a id="6021" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6024" href="Category.Ambient.html#2115" class="Function">idC</a><a id="6027" class="Symbol">)</a> <a id="6029" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6031" href="Monad.Instance.K.StrongPreElgot.html#5957" class="Bound">g</a><a id="6032" class="Symbol">)</a> <a id="6034" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a>
|
|||
|
<a id="6049" href="Monad.Instance.K.StrongPreElgot.html#5942" class="Function">pres₂</a> <a id="6055" class="Symbol">{</a><a id="6056" href="Monad.Instance.K.StrongPreElgot.html#6056" class="Bound">Z</a><a id="6057" class="Symbol">}</a> <a id="6059" class="Symbol">{</a><a id="6060" href="Monad.Instance.K.StrongPreElgot.html#6060" class="Bound">g</a><a id="6061" class="Symbol">}</a> <a id="6063" class="Symbol">=</a> <a id="6065" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="6085" class="Symbol">(</a><a id="6086" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="6092" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="6094" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6096" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="6099" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a><a id="6100" class="Symbol">)</a> <a id="6102" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6104" href="Monad.Instance.K.StrongPreElgot.html#6060" class="Bound">g</a> <a id="6106" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a> <a id="6142" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6145" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="6151" class="Symbol">(</a><a id="6152" href="Monad.Instance.K.StrongPreElgot.html#3684" class="Function">η'-preserves</a> <a id="6165" href="Monad.Instance.K.StrongPreElgot.html#6060" class="Bound">g</a><a id="6166" class="Symbol">)</a> <a id="6168" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="6184" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="6190" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="6192" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6194" class="Symbol">((</a><a id="6196" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="6199" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a> <a id="6201" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6204" href="Category.Ambient.html#2115" class="Function">idC</a><a id="6207" class="Symbol">)</a> <a id="6209" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6211" href="Monad.Instance.K.StrongPreElgot.html#6060" class="Bound">g</a><a id="6212" class="Symbol">)</a> <a id="6214" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a> <a id="6241" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6244" class="Symbol">(</a><a id="6245" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="6249" class="Symbol">(</a><a id="6250" href="Category.Ambient.html#10091" class="Function">F₁⇒extend</a> <a id="6260" href="Monad.Instance.K.StrongPreElgot.html#2281" class="Function">T</a> <a id="6262" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a><a id="6263" class="Symbol">))</a> <a id="6266" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="6274" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="6290" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="6297" class="Symbol">(</a><a id="6298" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="6304" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="6306" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6308" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a><a id="6309" class="Symbol">)</a> <a id="6311" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6313" class="Symbol">((</a><a id="6315" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="6318" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a> <a id="6320" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6323" href="Category.Ambient.html#2115" class="Function">idC</a><a id="6326" class="Symbol">)</a> <a id="6328" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6330" href="Monad.Instance.K.StrongPreElgot.html#6060" class="Bound">g</a><a id="6331" class="Symbol">)</a> <a id="6333" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a> <a id="6347" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6350" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="6354" class="Symbol">(</a><a id="6355" href="Monad.PreElgot.html#998" class="Function">StrongPreElgotMonad.extend-preserves</a> <a id="6392" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a> <a id="6394" class="Symbol">((</a><a id="6396" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="6399" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a> <a id="6401" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6404" href="Category.Ambient.html#2115" class="Function">idC</a><a id="6407" class="Symbol">)</a> <a id="6409" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6411" href="Monad.Instance.K.StrongPreElgot.html#6060" class="Bound">g</a><a id="6412" class="Symbol">)</a> <a id="6414" class="Symbol">(</a><a id="6415" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="6421" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="6423" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6425" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a><a id="6426" class="Symbol">))</a> <a id="6429" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="6445" class="Symbol">(((</a><a id="6448" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="6455" class="Symbol">(</a><a id="6456" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="6462" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="6464" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6466" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a><a id="6467" class="Symbol">)</a> <a id="6469" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6472" href="Category.Ambient.html#2115" class="Function">idC</a><a id="6475" class="Symbol">)</a> <a id="6477" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6479" class="Symbol">(</a><a id="6480" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="6483" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a> <a id="6485" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6488" href="Category.Ambient.html#2115" class="Function">idC</a><a id="6491" class="Symbol">)</a> <a id="6493" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6495" href="Monad.Instance.K.StrongPreElgot.html#6060" class="Bound">g</a><a id="6496" class="Symbol">)</a> <a id="6498" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a><a id="6500" class="Symbol">)</a> <a id="6502" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6505" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="6514" class="Symbol">(</a><a id="6515" href="Monad.PreElgot.html#815" class="Function">StrongPreElgotMonad.elgotalgebras</a> <a id="6549" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a><a id="6550" class="Symbol">)</a> <a id="6552" class="Symbol">(</a><a id="6553" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6559" class="Symbol">(</a><a id="6560" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="6566" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="6568" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="6577" class="Symbol">((</a><a id="6579" href="Category.Ambient.html#10091" class="Function">F₁⇒extend</a> <a id="6589" href="Monad.Instance.K.StrongPreElgot.html#2281" class="Function">T</a> <a id="6591" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a><a id="6592" class="Symbol">)</a> <a id="6594" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="6601" class="Symbol">)</a> <a id="6603" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="6612" class="Symbol">))</a> <a id="6615" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="6631" class="Symbol">((</a><a id="6633" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="6639" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="6641" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6643" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="6646" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a> <a id="6648" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6651" href="Category.Ambient.html#2115" class="Function">idC</a><a id="6654" class="Symbol">)</a> <a id="6656" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6658" href="Monad.Instance.K.StrongPreElgot.html#6060" class="Bound">g</a><a id="6659" class="Symbol">)</a> <a id="6661" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a> <a id="6688" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="6702" href="Monad.Instance.K.StrongPreElgot.html#6702" class="Function">comm₁</a> <a id="6708" class="Symbol">:</a> <a id="6710" class="Symbol">(</a><a id="6711" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="6714" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="6716" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6718" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="6722" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a><a id="6723" class="Symbol">)</a> <a id="6725" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6727" class="Symbol">_</a> <a id="6729" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="6731" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="6737" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="6739" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6741" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="6747" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a>
|
|||
|
<a id="6761" href="Monad.Instance.K.StrongPreElgot.html#6702" class="Function">comm₁</a> <a id="6767" class="Symbol">=</a> <a id="6769" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="6789" class="Symbol">(</a><a id="6790" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="6793" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="6795" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6797" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="6801" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a><a id="6802" class="Symbol">)</a> <a id="6804" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6806" class="Symbol">_</a> <a id="6808" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6811" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="6817" class="Symbol">(</a><a id="6818" href="Monad.Instance.K.Strong.html#5746" class="Function">K₁η</a> <a id="6822" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a><a id="6823" class="Symbol">)</a> <a id="6825" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="6841" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="6844" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="6846" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6848" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="6853" class="Symbol">_</a> <a id="6855" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6857" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="6860" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6863" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6869" class="Symbol">(</a><a id="6870" href="Categories.FreeObjects.Free.html#937" class="Field">FreeObject.*-lift</a> <a id="6888" class="Symbol">(</a><a id="6889" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="6902" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a><a id="6903" class="Symbol">)</a> <a id="6905" class="Symbol">(</a><a id="6906" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="6912" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a><a id="6913" class="Symbol">))</a> <a id="6916" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="6932" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="6938" href="Monad.Instance.K.StrongPreElgot.html#3989" class="Bound">Y</a> <a id="6940" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6942" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="6951" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6954" href="Categories.NaturalTransformation.Core.html#827" class="Field">NaturalTransformation.commute</a> <a id="6984" href="Categories.Monad.html#547" class="Function">T.η</a> <a id="6988" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="6990" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="7006" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="7012" href="Monad.Instance.K.StrongPreElgot.html#3992" class="Bound">f</a> <a id="7014" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7016" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="7022" href="Monad.Instance.K.StrongPreElgot.html#3985" class="Bound">X</a> <a id="7025" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="7035" href="Monad.Instance.K.StrongPreElgot.html#7035" class="Function">α-η</a> <a id="7039" class="Symbol">:</a> <a id="7041" class="Symbol">∀</a> <a id="7043" class="Symbol">{</a><a id="7044" href="Monad.Instance.K.StrongPreElgot.html#7044" class="Bound">X</a> <a id="7046" class="Symbol">:</a> <a id="7048" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="7051" class="Symbol">}</a> <a id="7053" class="Symbol">→</a> <a id="7055" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="7058" href="Monad.Instance.K.StrongPreElgot.html#7044" class="Bound">X</a> <a id="7060" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7062" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="7067" href="Monad.Instance.K.StrongPreElgot.html#7044" class="Bound">X</a> <a id="7069" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="7071" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="7077" href="Monad.Instance.K.StrongPreElgot.html#7044" class="Bound">X</a>
|
|||
|
<a id="7087" href="Monad.Instance.K.StrongPreElgot.html#7035" class="Function">α-η</a> <a id="7091" class="Symbol">{</a><a id="7092" href="Monad.Instance.K.StrongPreElgot.html#7092" class="Bound">X</a><a id="7093" class="Symbol">}</a> <a id="7095" class="Symbol">=</a> <a id="7097" href="Categories.FreeObjects.Free.html#937" class="Field">FreeObject.*-lift</a> <a id="7115" class="Symbol">(</a><a id="7116" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="7129" href="Monad.Instance.K.StrongPreElgot.html#7092" class="Bound">X</a><a id="7130" class="Symbol">)</a> <a id="7132" class="Symbol">(</a><a id="7133" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="7139" href="Monad.Instance.K.StrongPreElgot.html#7092" class="Bound">X</a><a id="7140" class="Symbol">)</a>
|
|||
|
<a id="7151" href="Monad.Instance.K.StrongPreElgot.html#7151" class="Function">α-μ</a> <a id="7155" class="Symbol">:</a> <a id="7157" class="Symbol">∀</a> <a id="7159" class="Symbol">{</a><a id="7160" href="Monad.Instance.K.StrongPreElgot.html#7160" class="Bound">X</a> <a id="7162" class="Symbol">:</a> <a id="7164" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="7167" class="Symbol">}</a> <a id="7169" class="Symbol">→</a> <a id="7171" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="7174" href="Monad.Instance.K.StrongPreElgot.html#7160" class="Bound">X</a> <a id="7176" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7178" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="7183" href="Monad.Instance.K.StrongPreElgot.html#7160" class="Bound">X</a> <a id="7185" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="7187" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="7193" href="Monad.Instance.K.StrongPreElgot.html#7160" class="Bound">X</a> <a id="7195" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7197" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="7203" class="Symbol">(</a><a id="7204" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="7207" href="Monad.Instance.K.StrongPreElgot.html#7160" class="Bound">X</a><a id="7208" class="Symbol">)</a> <a id="7210" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7212" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="7215" class="Symbol">(</a><a id="7216" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="7220" href="Monad.Instance.K.StrongPreElgot.html#7160" class="Bound">X</a><a id="7221" class="Symbol">)</a>
|
|||
|
<a id="7231" href="Monad.Instance.K.StrongPreElgot.html#7151" class="Function">α-μ</a> <a id="7235" class="Symbol">{</a><a id="7236" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="7237" class="Symbol">}</a> <a id="7239" class="Symbol">=</a> <a id="7241" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="7257" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="7260" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="7262" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7264" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="7269" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="7340" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7343" href="Categories.FreeObjects.Free.html#1017" class="Field">FreeObject.*-uniq</a>
|
|||
|
<a id="7390" class="Symbol">(</a><a id="7391" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="7404" class="Symbol">(</a><a id="7405" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="7409" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="7410" class="Symbol">))</a>
|
|||
|
<a id="7442" class="Symbol">{</a><a id="7443" class="Argument">A</a> <a id="7445" class="Symbol">=</a> <a id="7447" href="Monad.Instance.K.StrongPreElgot.html#2518" class="Function">T-Alg</a> <a id="7453" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="7454" class="Symbol">}</a>
|
|||
|
<a id="7485" class="Symbol">(</a><a id="7486" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="7489" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="7490" class="Symbol">)</a>
|
|||
|
<a id="7521" class="Symbol">(</a><a id="7522" class="Keyword">record</a> <a id="7529" class="Symbol">{</a> <a id="7531" href="Category.Construction.ElgotAlgebras.html#794" class="Field">h</a> <a id="7533" class="Symbol">=</a> <a id="7535" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="7538" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="7540" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7542" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="7547" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="7549" class="Symbol">;</a> <a id="7551" href="Category.Construction.ElgotAlgebras.html#812" class="Field">preserves</a> <a id="7561" class="Symbol">=</a> <a id="7563" href="Monad.Instance.K.StrongPreElgot.html#8515" class="Function">pres₁</a> <a id="7569" class="Symbol">})</a>
|
|||
|
<a id="7601" class="Symbol">(</a><a id="7602" href="Categories.Morphism.Reasoning.Core.html#6665" class="Function">cancelʳ</a> <a id="7610" href="Categories.Monad.html#953" class="Function">monadK.identityʳ</a><a id="7626" class="Symbol">)</a> <a id="7628" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="7640" href="Category.Construction.ElgotAlgebras.html#794" class="Field">Elgot-Algebra-Morphism.h</a> <a id="7665" class="Symbol">(((</a><a id="7668" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="7681" class="Symbol">(</a><a id="7682" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="7686" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="7687" class="Symbol">))</a> <a id="7690" href="Categories.FreeObjects.Free.html#880" class="Field Operator">FreeObject.*</a><a id="7702" class="Symbol">)</a> <a id="7704" class="Symbol">{</a><a id="7705" class="Argument">A</a> <a id="7707" class="Symbol">=</a> <a id="7709" href="Monad.Instance.K.StrongPreElgot.html#2518" class="Function">T-Alg</a> <a id="7715" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="7716" class="Symbol">}</a> <a id="7718" class="Symbol">(</a><a id="7719" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="7722" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="7723" class="Symbol">))</a> <a id="7726" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7729" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="7733" class="Symbol">(</a><a id="7734" href="Categories.FreeObjects.Free.html#1017" class="Field">FreeObject.*-uniq</a>
|
|||
|
<a id="7855" class="Symbol">(</a><a id="7856" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="7869" class="Symbol">(</a><a id="7870" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="7874" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="7875" class="Symbol">))</a>
|
|||
|
<a id="7981" class="Symbol">{</a><a id="7982" class="Argument">A</a> <a id="7984" class="Symbol">=</a> <a id="7986" href="Monad.Instance.K.StrongPreElgot.html#2518" class="Function">T-Alg</a> <a id="7992" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="7993" class="Symbol">}</a>
|
|||
|
<a id="8098" class="Symbol">(</a><a id="8099" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="8102" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="8103" class="Symbol">)</a>
|
|||
|
<a id="8208" class="Symbol">(</a><a id="8209" class="Keyword">record</a> <a id="8216" class="Symbol">{</a> <a id="8218" href="Category.Construction.ElgotAlgebras.html#794" class="Field">h</a> <a id="8220" class="Symbol">=</a> <a id="8222" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="8228" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="8230" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8232" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="8238" class="Symbol">(</a><a id="8239" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="8242" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="8243" class="Symbol">)</a> <a id="8245" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8247" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="8250" class="Symbol">(</a><a id="8251" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="8255" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="8256" class="Symbol">)</a> <a id="8258" class="Symbol">;</a> <a id="8260" href="Category.Construction.ElgotAlgebras.html#812" class="Field">preserves</a> <a id="8270" class="Symbol">=</a> <a id="8272" href="Monad.Instance.K.StrongPreElgot.html#9052" class="Function">pres₂</a> <a id="8278" class="Symbol">})</a>
|
|||
|
<a id="8384" href="Monad.Instance.K.StrongPreElgot.html#10510" class="Function">comm</a><a id="8388" class="Symbol">)</a> <a id="8390" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="8402" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="8408" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="8410" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8412" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="8418" class="Symbol">(</a><a id="8419" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="8422" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="8423" class="Symbol">)</a> <a id="8425" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8427" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="8430" class="Symbol">(</a><a id="8431" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="8435" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="8436" class="Symbol">)</a> <a id="8485" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="8497" class="Keyword">where</a>
|
|||
|
<a id="8515" href="Monad.Instance.K.StrongPreElgot.html#8515" class="Function">pres₁</a> <a id="8521" class="Symbol">:</a> <a id="8523" class="Symbol">∀</a> <a id="8525" class="Symbol">{</a><a id="8526" href="Monad.Instance.K.StrongPreElgot.html#8526" class="Bound">Z</a><a id="8527" class="Symbol">}</a> <a id="8529" class="Symbol">{</a><a id="8530" href="Monad.Instance.K.StrongPreElgot.html#8530" class="Bound">g</a> <a id="8532" class="Symbol">:</a> <a id="8534" href="Monad.Instance.K.StrongPreElgot.html#8526" class="Bound">Z</a> <a id="8536" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="8538" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="8542" class="Symbol">(</a><a id="8543" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="8547" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="8548" class="Symbol">)</a> <a id="8550" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="8552" href="Monad.Instance.K.StrongPreElgot.html#8526" class="Bound">Z</a><a id="8553" class="Symbol">}</a> <a id="8555" class="Symbol">→</a> <a id="8557" class="Symbol">(</a><a id="8558" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="8561" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="8563" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8565" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8570" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="8571" class="Symbol">)</a> <a id="8573" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8575" href="Monad.Instance.K.StrongPreElgot.html#8530" class="Bound">g</a> <a id="8577" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a> <a id="8580" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="8582" class="Symbol">((</a><a id="8584" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="8587" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="8589" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8591" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8596" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="8598" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8601" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8604" class="Symbol">)</a> <a id="8606" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8608" href="Monad.Instance.K.StrongPreElgot.html#8530" class="Bound">g</a><a id="8609" class="Symbol">)</a> <a id="8611" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a>
|
|||
|
<a id="8626" href="Monad.Instance.K.StrongPreElgot.html#8515" class="Function">pres₁</a> <a id="8632" class="Symbol">{</a><a id="8633" href="Monad.Instance.K.StrongPreElgot.html#8633" class="Bound">Z</a><a id="8634" class="Symbol">}</a> <a id="8636" class="Symbol">{</a><a id="8637" href="Monad.Instance.K.StrongPreElgot.html#8637" class="Bound">g</a><a id="8638" class="Symbol">}</a> <a id="8640" class="Symbol">=</a> <a id="8642" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="8662" class="Symbol">(</a><a id="8663" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="8666" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="8668" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8670" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8675" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="8676" class="Symbol">)</a> <a id="8678" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8680" class="Symbol">(</a><a id="8681" href="Monad.Instance.K.StrongPreElgot.html#8637" class="Bound">g</a> <a id="8683" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a><a id="8685" class="Symbol">)</a> <a id="8705" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8708" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="8714" class="Symbol">(</a><a id="8715" href="Monad.Instance.K.StrongPreElgot.html#3458" class="Function">μK-preserves</a> <a id="8728" href="Monad.Instance.K.StrongPreElgot.html#8637" class="Bound">g</a><a id="8729" class="Symbol">)</a> <a id="8731" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="8747" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="8750" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="8752" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8754" class="Symbol">((</a><a id="8756" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8761" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="8763" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8766" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8769" class="Symbol">)</a> <a id="8771" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8773" href="Monad.Instance.K.StrongPreElgot.html#8637" class="Bound">g</a><a id="8774" class="Symbol">)</a> <a id="8776" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a> <a id="8790" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8793" href="Monad.Instance.K.StrongPreElgot.html#3684" class="Function">η'-preserves</a> <a id="8806" class="Symbol">((</a><a id="8808" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8813" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="8815" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8818" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8821" class="Symbol">)</a> <a id="8823" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8825" href="Monad.Instance.K.StrongPreElgot.html#8637" class="Bound">g</a><a id="8826" class="Symbol">)</a> <a id="8828" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="8844" class="Symbol">(((</a><a id="8847" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="8850" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="8852" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8855" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8858" class="Symbol">)</a> <a id="8860" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8862" class="Symbol">(</a><a id="8863" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8868" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="8870" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8873" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8876" class="Symbol">)</a> <a id="8878" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8880" href="Monad.Instance.K.StrongPreElgot.html#8637" class="Bound">g</a><a id="8881" class="Symbol">)</a> <a id="8883" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a><a id="8885" class="Symbol">)</a> <a id="8887" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8890" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="8899" class="Symbol">(</a><a id="8900" href="Monad.PreElgot.html#815" class="Function">StrongPreElgotMonad.elgotalgebras</a> <a id="8934" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a><a id="8935" class="Symbol">)</a> <a id="8937" class="Symbol">(</a><a id="8938" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="8944" class="Symbol">(</a><a id="8945" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="8951" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="8953" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="8962" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="8967" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="8976" class="Symbol">))</a> <a id="8979" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="8995" class="Symbol">(((</a><a id="8998" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9001" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="9003" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9005" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="9010" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="9012" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9015" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9018" class="Symbol">)</a> <a id="9020" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9022" href="Monad.Instance.K.StrongPreElgot.html#8637" class="Bound">g</a><a id="9023" class="Symbol">)</a> <a id="9025" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a><a id="9027" class="Symbol">)</a> <a id="9038" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="9052" href="Monad.Instance.K.StrongPreElgot.html#9052" class="Function">pres₂</a> <a id="9058" class="Symbol">:</a> <a id="9060" class="Symbol">∀</a> <a id="9062" class="Symbol">{</a><a id="9063" href="Monad.Instance.K.StrongPreElgot.html#9063" class="Bound">Z</a><a id="9064" class="Symbol">}</a> <a id="9066" class="Symbol">{</a><a id="9067" href="Monad.Instance.K.StrongPreElgot.html#9067" class="Bound">g</a> <a id="9069" class="Symbol">:</a> <a id="9071" href="Monad.Instance.K.StrongPreElgot.html#9063" class="Bound">Z</a> <a id="9073" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="9075" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="9079" class="Symbol">(</a><a id="9080" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="9084" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9085" class="Symbol">)</a> <a id="9087" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="9089" href="Monad.Instance.K.StrongPreElgot.html#9063" class="Bound">Z</a><a id="9090" class="Symbol">}</a> <a id="9092" class="Symbol">→</a> <a id="9094" class="Symbol">(</a><a id="9095" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="9101" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="9103" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9105" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="9111" class="Symbol">(</a><a id="9112" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9115" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9116" class="Symbol">)</a> <a id="9118" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9120" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9123" class="Symbol">(</a><a id="9124" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="9128" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9129" class="Symbol">))</a> <a id="9132" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9134" href="Monad.Instance.K.StrongPreElgot.html#9067" class="Bound">g</a> <a id="9136" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a> <a id="9139" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="9141" class="Symbol">((</a><a id="9143" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="9149" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="9151" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9153" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="9159" class="Symbol">(</a><a id="9160" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9163" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9164" class="Symbol">)</a> <a id="9166" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9168" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9171" class="Symbol">(</a><a id="9172" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="9176" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9177" class="Symbol">)</a> <a id="9179" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9182" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9185" class="Symbol">)</a> <a id="9187" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9189" href="Monad.Instance.K.StrongPreElgot.html#9067" class="Bound">g</a><a id="9190" class="Symbol">)</a> <a id="9192" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">
|
|||
|
<a id="9207" href="Monad.Instance.K.StrongPreElgot.html#9052" class="Function">pres₂</a> <a id="9213" class="Symbol">{</a><a id="9214" href="Monad.Instance.K.StrongPreElgot.html#9214" class="Bound">Z</a><a id="9215" class="Symbol">}</a> <a id="9217" class="Symbol">{</a><a id="9218" href="Monad.Instance.K.StrongPreElgot.html#9218" class="Bound">g</a><a id="9219" class="Symbol">}</a> <a id="9221" class="Symbol">=</a> <a id="9223" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="9243" class="Symbol">(</a><a id="9244" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="9250" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="9252" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9254" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="9260" class="Symbol">(</a><a id="9261" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9264" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9265" class="Symbol">)</a> <a id="9267" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9269" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9272" class="Symbol">(</a><a id="9273" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="9277" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9278" class="Symbol">))</a> <a id="9281" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9283" class="Symbol">(</a><a id="9284" href="Monad.Instance.K.StrongPreElgot.html#9218" class="Bound">g</a> <a id="9286" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a><a id="9288" class="Symbol">)</a> <a id="9327" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9330" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="9336" class="Symbol">(</a><a id="9337" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="9343" class="Symbol">(</a><a id="9344" href="Monad.Instance.K.StrongPreElgot.html#3684" class="Function">η'-preserves</a> <a id="9357" href="Monad.Instance.K.StrongPreElgot.html#9218" class="Bound">g</a><a id="9358" class="Symbol">))</a> <a id="9361" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="9377" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="9383" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="9385" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9387" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="9393" class="Symbol">(</a><a id="9394" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9397" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9398" class="Symbol">)</a> <a id="9400" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9402" class="Symbol">(((</a><a id="9405" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9408" class="Symbol">(</a><a id="9409" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="9413" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9414" class="Symbol">)</a> <a id="9416" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9419" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9422" class="Symbol">)</a> <a id="9424" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9426" href="Monad.Instance.K.StrongPreElgot.html#9218" class="Bound">g</a><a id="9427" class="Symbol">)</a> <a id="9429" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a><a id="9431" class="Symbol">)</a> <a id="9461" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9464" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="9472" class="Symbol">((</a><a id="9474" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="9478" class="Symbol">(</a><a id="9479" href="Category.Ambient.html#10091" class="Function">F₁⇒extend</a> <a id="9489" href="Monad.Instance.K.StrongPreElgot.html#2281" class="Function">T</a> <a id="9491" class="Symbol">(</a><a id="9492" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9495" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9496" class="Symbol">)))</a> <a id="9500" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="9508" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="9510" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="9514" class="Symbol">(</a><a id="9515" href="Monad.PreElgot.html#998" class="Function">StrongPreElgotMonad.extend-preserves</a> <a id="9552" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a> <a id="9554" class="Symbol">((</a><a id="9556" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9559" class="Symbol">(</a><a id="9560" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="9564" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9565" class="Symbol">)</a> <a id="9567" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9570" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9573" class="Symbol">)</a> <a id="9575" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9577" href="Monad.Instance.K.StrongPreElgot.html#9218" class="Bound">g</a><a id="9578" class="Symbol">)</a> <a id="9580" class="Symbol">(</a><a id="9581" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="9587" class="Symbol">(</a><a id="9588" href="Categories.Functor.Core.html#432" class="Function">T.F.F₀</a> <a id="9595" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9596" class="Symbol">)</a> <a id="9598" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9600" href="Monad.Instance.K.StrongPreElgot
|
|||
|
<a id="9624" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="9630" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="9632" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9634" class="Symbol">((</a><a id="9636" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="9643" class="Symbol">(</a><a id="9644" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="9650" class="Symbol">_</a> <a id="9652" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9654" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9657" class="Symbol">_)</a> <a id="9660" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9663" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9666" class="Symbol">)</a> <a id="9668" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9670" class="Symbol">((</a><a id="9672" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9675" class="Symbol">_</a> <a id="9677" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9680" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9683" class="Symbol">))</a> <a id="9686" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9688" href="Monad.Instance.K.StrongPreElgot.html#9218" class="Bound">g</a><a id="9689" class="Symbol">)</a> <a id="9691" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a> <a id="9708" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9711" class="Symbol">(</a><a id="9712" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="9716" class="Symbol">(</a><a id="9717" href="Categories.Morphism.Reasoning.Core.html#2786" class="Function">elimʳ</a> <a id="9723" href="Categories.Functor.Core.html#511" class="Function">T.F.identity</a><a id="9735" class="Symbol">))</a> <a id="9738" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="9746" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="9762" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="9769" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="9773" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9775" class="Symbol">((</a><a id="9777" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="9784" class="Symbol">(</a><a id="9785" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="9791" class="Symbol">_</a> <a id="9793" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9795" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9798" class="Symbol">_)</a> <a id="9801" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9804" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9807" class="Symbol">)</a> <a id="9809" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9811" class="Symbol">((</a><a id="9813" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9816" class="Symbol">_</a> <a id="9818" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9821" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9824" class="Symbol">))</a> <a id="9827" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9829" href="Monad.Instance.K.StrongPreElgot.html#9218" class="Bound">g</a><a id="9830" class="Symbol">)</a> <a id="9832" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a> <a id="9846" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9849" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="9853" class="Symbol">(</a><a id="9854" href="Monad.PreElgot.html#998" class="Function">StrongPreElgotMonad.extend-preserves</a> <a id="9891" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a> <a id="9893" class="Symbol">((</a><a id="9895" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="9902" class="Symbol">(</a><a id="9903" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="9909" class="Symbol">(</a><a id="9910" href="Categories.Functor.Core.html#432" class="Function">T.F.F₀</a> <a id="9917" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9918" class="Symbol">)</a> <a id="9920" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9922" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9925" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9926" class="Symbol">)</a> <a id="9928" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9931" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9934" class="Symbol">)</a> <a id="9936" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9938" class="Symbol">(</a><a id="9939" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="9942" class="Symbol">(</a><a id="9943" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="9947" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="9948" class="Symbol">)</a> <a id="9950" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9953" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9956" class="Symbol">)</a> <a id="9958" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9960" href="Monad.Instance.K.StrongPreElgot.html#9218" class="Bound">g</a><a id="9961" class="Symbol">)</a> <a id="9963" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9966" class="Symbol">)</a> <a id="9968" href="Relation.Binary.Reasoning.Syntax.html#7049" class="
|
|||
|
<a id="9984" class="Symbol">(((</a><a id="9987" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="9994" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="9998" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10001" href="Category.Ambient.html#2115" class="Function">idC</a><a id="10004" class="Symbol">)</a> <a id="10006" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10008" class="Symbol">(</a><a id="10009" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="10016" class="Symbol">(</a><a id="10017" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="10023" class="Symbol">_</a> <a id="10025" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10027" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10030" class="Symbol">_)</a> <a id="10033" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10036" href="Category.Ambient.html#2115" class="Function">idC</a><a id="10039" class="Symbol">)</a> <a id="10041" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10043" class="Symbol">((</a><a id="10045" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10048" class="Symbol">_</a> <a id="10050" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10053" href="Category.Ambient.html#2115" class="Function">idC</a><a id="10056" class="Symbol">))</a> <a id="10059" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10061" href="Monad.Instance.K.StrongPreElgot.html#9218" class="Bound">g</a><a id="10062" class="Symbol">)</a> <a id="10064" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a><a id="10066" class="Symbol">)</a> <a id="10068" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10071" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="10080" class="Symbol">(</a><a id="10081" href="Monad.PreElgot.html#815" class="Function">StrongPreElgotMonad.elgotalgebras</a> <a id="10115" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a><a id="10116" class="Symbol">)</a> <a id="10118" class="Symbol">(</a><a id="10119" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="10125" class="Symbol">(</a><a id="10126" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="10132" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="10134" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="10143" class="Symbol">((</a><a id="10145" href="Categories.Morphism.Reasoning.Core.html#2786" class="Function">elimʳ</a> <a id="10151" href="Categories.Functor.Core.html#511" class="Function">T.F.identity</a><a id="10163" class="Symbol">)</a> <a id="10165" href="Categories.Category.Core.html#2634" class="Function Operator">⟩∘⟨</a> <a id="10169" class="Symbol">(</a><a id="10170" href="Category.Ambient.html#10091" class="Function">F₁⇒extend</a> <a id="10180" href="Monad.Instance.K.StrongPreElgot.html#2281" class="Function">T</a> <a id="10182" class="Symbol">(</a><a id="10183" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10186" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10187" class="Symbol">)))</a> <a id="10191" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="10200" class="Symbol">))</a> <a id="10203" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="10219" class="Symbol">(((</a><a id="10222" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="10228" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="10230" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10232" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="10238" class="Symbol">(</a><a id="10239" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10242" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10243" class="Symbol">)</a> <a id="10245" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10248" href="Category.Ambient.html#2115" class="Function">idC</a><a id="10251" class="Symbol">)</a> <a id="10253" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10255" class="Symbol">(</a><a id="10256" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10259" class="Symbol">_</a> <a id="10261" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10264" href="Category.Ambient.html#2115" class="Function">idC</a><a id="10267" class="Symbol">)</a> <a id="10269" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10271" href="Monad.Instance.K.StrongPreElgot.html#9218" class="Bound">g</a><a id="10272" class="Symbol">)</a> <a id="10274" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a><a id="10276" class="Symbol">)</a> <a id="10303" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10306" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="10315" class="Symbol">(</a><a id="10316" href="Monad.PreElgot.html#815" class="Function">StrongPreElgotMonad.elgotalgebras</a> <a id="10350" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a><a id="10351" class="Symbol">)</a> <a id="10353" class="Symbol">(</a><a id="10354" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="10360" class="Symbol">(</a><a id="10361" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="10367" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="10369" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="10378" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="10384" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="10393" class="Symbol">))</a> <a id="10396" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="10412" class="Symbol">(((</a><a id="10415" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="10421" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="10423" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10425" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="10431" class="Symbol">(</a><a id="10432" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10435" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10436" class="Symbol">)</a> <a id="10438" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10440" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10443" class="Symbol">(</a><a id="10444" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="10448" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10449" class="Symbol">)</a> <a id="10451" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="10454" href="Category.Ambient.html#2115" class="Function">idC</a><a id="10457" class="Symbol">)</a> <a id="10459" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10461" href="Monad.Instance.K.StrongPreElgot.html#9218" class="Bound">g</a><a id="10462" class="Symbol">)</a> <a id="10464" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a><a id="10466" class="Symbol">)</a> <a id="10496" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="10510" href="Monad.Instance.K.StrongPreElgot.html#10510" class="Function">comm</a> <a id="10515" class="Symbol">:</a> <a id="10517" class="Symbol">(</a><a id="10518" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="10524" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="10526" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10528" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="10534" class="Symbol">(</a><a id="10535" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10538" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10539" class="Symbol">)</a> <a id="10541" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10543" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10546" class="Symbol">(</a><a id="10547" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="10551" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10552" class="Symbol">))</a> <a id="10555" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10557" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="10562" class="Symbol">(</a><a id="10563" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="10567" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10568" class="Symbol">)</a> <a id="10570" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="10572" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10575" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a>
|
|||
|
<a id="10589" href="Monad.Instance.K.StrongPreElgot.html#10510" class="Function">comm</a> <a id="10594" class="Symbol">=</a> <a id="10596" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="10616" class="Symbol">(</a><a id="10617" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="10623" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="10625" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10627" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="10633" class="Symbol">(</a><a id="10634" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10637" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10638" class="Symbol">)</a> <a id="10640" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10642" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10645" class="Symbol">(</a><a id="10646" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="10650" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10651" class="Symbol">))</a> <a id="10654" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10656" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="10661" class="Symbol">(</a><a id="10662" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="10666" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10667" class="Symbol">)</a> <a id="10669" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10672" class="Symbol">(</a><a id="10673" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="10681" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="10685" class="Symbol">(</a><a id="10686" href="Monad.Instance.K.StrongPreElgot.html#3900" class="Function">commute</a> <a id="10694" class="Symbol">(</a><a id="10695" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10698" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10699" class="Symbol">)))</a> <a id="10703" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="10711" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="10727" class="Symbol">(</a><a id="10728" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="10734" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="10736" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10738" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10741" class="Symbol">_</a> <a id="10743" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10745" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="10749" class="Symbol">(</a><a id="10750" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10753" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10754" class="Symbol">))</a> <a id="10757" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10759" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="10764" class="Symbol">(</a><a id="10765" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="10769" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10770" class="Symbol">)</a> <a id="10780" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10783" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="10789" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="10791" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="10799" class="Symbol">(</a><a id="10800" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="10806" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="10809" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="10817" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="10821" class="Symbol">(</a><a id="10822" href="Categories.NaturalTransformation.Core.html#827" class="Function">monadK.η.commute</a> <a id="10839" class="Symbol">(</a><a id="10840" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10843" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10844" class="Symbol">)))</a> <a id="10848" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="10864" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="10870" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="10872" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10874" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10877" class="Symbol">_</a> <a id="10879" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10881" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="10886" class="Symbol">(</a><a id="10887" href="Categories.Functor.Core.html#432" class="Function">T.F.F₀</a> <a id="10894" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a><a id="10895" class="Symbol">)</a> <a id="10897" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10899" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="10902" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="10917" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10920" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="10928" class="Symbol">(</a><a id="10929" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="10935" class="Symbol">(</a><a id="10936" href="Categories.FreeObjects.Free.html#937" class="Field">FreeObject.*-lift</a> <a id="10954" class="Symbol">(</a><a id="10955" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="10968" class="Symbol">_)</a> <a id="10971" class="Symbol">(</a><a id="10972" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="10978" class="Symbol">_)))</a> <a id="10983" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="10999" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="11005" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="11007" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11009" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="11015" class="Symbol">_</a> <a id="11017" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11019" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="11022" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="11052" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11055" href="Categories.Morphism.Reasoning.Core.html#6851" class="Function">cancelˡ</a> <a id="11063" class="Symbol">(</a><a id="11064" href="Categories.Monad.html#953" class="Field">Monad.identityʳ</a> <a id="11080" href="Monad.Instance.K.StrongPreElgot.html#2281" class="Function">T</a><a id="11081" class="Symbol">)</a> <a id="11083" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="11099" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="11102" href="Monad.Instance.K.StrongPreElgot.html#7236" class="Bound">X</a> <a id="11152" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="11162" href="Monad.Instance.K.StrongPreElgot.html#11162" class="Function">α-strength</a> <a id="11173" class="Symbol">:</a> <a id="11175" class="Symbol">∀</a> <a id="11177" class="Symbol">{</a><a id="11178" href="Monad.Instance.K.StrongPreElgot.html#11178" class="Bound">X</a> <a id="11180" href="Monad.Instance.K.StrongPreElgot.html#11180" class="Bound">Y</a> <a id="11182" class="Symbol">:</a> <a id="11184" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="11187" class="Symbol">}</a> <a id="11189" class="Symbol">→</a> <a id="11191" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="11194" class="Symbol">(</a><a id="11195" href="Monad.Instance.K.StrongPreElgot.html#11178" class="Bound">X</a> <a id="11197" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="11199" href="Monad.Instance.K.StrongPreElgot.html#11180" class="Bound">Y</a><a id="11200" class="Symbol">)</a> <a id="11202" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11204" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthenK.η</a> <a id="11218" class="Symbol">(</a><a id="11219" href="Monad.Instance.K.StrongPreElgot.html#11178" class="Bound">X</a> <a id="11221" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="11223" href="Monad.Instance.K.StrongPreElgot.html#11180" class="Bound">Y</a><a id="11224" class="Symbol">)</a> <a id="11226" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="11228" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="11241" class="Symbol">(</a><a id="11242" href="Monad.Instance.K.StrongPreElgot.html#11178" class="Bound">X</a> <a id="11244" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="11246" href="Monad.Instance.K.StrongPreElgot.html#11180" class="Bound">Y</a><a id="11247" class="Symbol">)</a> <a id="11249" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11251" class="Symbol">(</a><a id="11252" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="11256" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="11258" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="11261" href="Monad.Instance.K.StrongPreElgot.html#11180" class="Bound">Y</a><a id="11262" class="Symbol">)</a>
|
|||
|
<a id="11272" href="Monad.Instance.K.StrongPreElgot.html#11162" class="Function">α-strength</a> <a id="11283" class="Symbol">{</a><a id="11284" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a><a id="11285" class="Symbol">}</a> <a id="11287" class="Symbol">{</a><a id="11288" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11289" class="Symbol">}</a> <a id="11291" class="Symbol">=</a> <a id="11293" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="11310" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="11313" class="Symbol">(</a><a id="11314" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11316" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="11318" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11319" class="Symbol">)</a> <a id="11321" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11323" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthenK.η</a> <a id="11337" class="Symbol">(</a><a id="11338" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11340" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="11342" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11343" class="Symbol">)</a> <a id="11383" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11386" href="Algebra.Elgot.Stable.html#3117" class="Field">IsStableFreeElgotAlgebra.♯-unique</a> <a id="11420" class="Symbol">(</a><a id="11421" href="Monad.Instance.K.html#1228" class="Field">stable</a> <a id="11428" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11429" class="Symbol">)</a> <a id="11431" class="Symbol">(</a><a id="11432" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="11438" class="Symbol">(</a><a id="11439" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11441" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="11443" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11444" class="Symbol">))</a> <a id="11447" class="Symbol">(</a><a id="11448" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="11451" class="Symbol">(</a><a id="11452" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11454" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="11456" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11457" class="Symbol">)</a> <a id="11459" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11461" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthenK.η</a> <a id="11475" class="Symbol">(</a><a id="11476" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11478" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="11480" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11481" class="Symbol">))</a> <a id="11484" class="Symbol">(</a><a id="11485" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="11489" href="Monad.Instance.K.StrongPreElgot.html#11830" class="Function">pres₁</a><a id="11494" class="Symbol">)</a> <a id="11496" href="Monad.Instance.K.StrongPreElgot.html#12574" class="Function">pres₃</a> <a id="11502" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="11515" href="Algebra.Elgot.Stable.html#2658" class="Field Operator">IsStableFreeElgotAlgebra.[</a> <a id="11542" class="Symbol">(</a><a id="11543" href="Monad.Instance.K.html#1228" class="Field">stable</a> <a id="11550" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11551" class="Symbol">)</a> <a id="11553" href="Algebra.Elgot.Stable.html#2658" class="Field Operator">,</a> <a id="11555" href="Monad.Instance.K.StrongPreElgot.html#2518" class="Function">T-Alg</a> <a id="11561" class="Symbol">(</a><a id="11562" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11564" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="11566" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11567" class="Symbol">)</a> <a id="11569" href="Algebra.Elgot.Stable.html#2658" class="Field Operator">]♯</a> <a id="11572" class="Symbol">(</a><a id="11573" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="11579" class="Symbol">(</a><a id="11580" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11582" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="11584" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11585" class="Symbol">))</a> <a id="11588" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11591" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="11595" class="Symbol">(</a><a id="11596" href="Algebra.Elgot.Stable.html#3117" class="Field">IsStableFreeElgotAlgebra.♯-unique</a> <a id="11630" class="Symbol">(</a><a id="11631" href="Monad.Instance.K.html#1228" class="Field">stable</a> <a id="11638" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11639" class="Symbol">)</a> <a id="11641" class="Symbol">(</a><a id="11642" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="11648" class="Symbol">(</a><a id="11649" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11651" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="11653" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11654" class="Symbol">))</a> <a id="11657" class="Symbol">(</a><a id="11658" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="11671" class="Symbol">(</a><a id="11672" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11674" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="11676" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11677" class="Symbol">)</a> <a id="11679" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11681" class="Symbol">(</a><a id="11682" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="11686" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="11688" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="11691" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11692" class="Symbol">))</a> <a id="11695" class="Symbol">(</a><a id="11696" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="11700" href="Monad.Instance.K.StrongPreElgot.html#12189" class="Function">pres₂</a><a id="11705" class="Symbol">)</a> <a id="11707" href="Monad.Instance.K.StrongPreElgot.html#13380" class="Function">pres₄</a><a id="11712" class="Symbol">)</a> <a id="11714" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="11727" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="11740" class="Symbol">(</a><a id="11741" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11743" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="11745" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11746" class="Symbol">)</a> <a id="11748" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11750" class="Symbol">(</a><a id="11751" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="11755" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="11757" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="11760" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11761" class="Symbol">)</a> <a id="11800" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="11812" class="Keyword">where</a>
|
|||
|
<a id="11830" href="Monad.Instance.K.StrongPreElgot.html#11830" class="Function">pres₁</a> <a id="11836" class="Symbol">:</a> <a id="11838" class="Symbol">(</a><a id="11839" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="11842" class="Symbol">(</a><a id="11843" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11845" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="11847" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11848" class="Symbol">)</a> <a id="11850" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11852" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthenK.η</a> <a id="11866" class="Symbol">(</a><a id="11867" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11869" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="11871" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11872" class="Symbol">))</a> <a id="11875" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11877" class="Symbol">(</a><a id="11878" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="11882" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="11884" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="11889" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11890" class="Symbol">)</a> <a id="11892" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="11894" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="11900" class="Symbol">(</a><a id="11901" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11903" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="11905" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11906" class="Symbol">)</a>
|
|||
|
<a id="11920" href="Monad.Instance.K.StrongPreElgot.html#11830" class="Function">pres₁</a> <a id="11926" class="Symbol">=</a> <a id="11928" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="11949" class="Symbol">(</a><a id="11950" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="11953" class="Symbol">(</a><a id="11954" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11956" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="11958" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11959" class="Symbol">)</a> <a id="11961" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11963" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthenK.η</a> <a id="11977" class="Symbol">(</a><a id="11978" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="11980" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="11982" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="11983" class="Symbol">))</a> <a id="11986" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="11988" class="Symbol">(</a><a id="11989" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="11993" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="11995" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="12000" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12001" class="Symbol">)</a> <a id="12003" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="12006" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="12012" class="Symbol">(</a><a id="12013" href="Monad.Instance.K.Strong.html#3312" class="Function">τ-η</a> <a id="12017" class="Symbol">(</a><a id="12018" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12020" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="12022" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12023" class="Symbol">))</a> <a id="12026" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="12043" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="12046" class="Symbol">(</a><a id="12047" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12049" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="12051" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12052" class="Symbol">)</a> <a id="12054" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12056" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="12061" class="Symbol">(</a><a id="12062" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12064" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="12066" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12067" class="Symbol">)</a> <a id="12097" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="12100" href="Monad.Instance.K.StrongPreElgot.html#7035" class="Function">α-η</a> <a id="12104" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="12121" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="12127" class="Symbol">(</a><a id="12128" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12130" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="12132" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12133" class="Symbol">)</a> <a id="12175" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="12189" href="Monad.Instance.K.StrongPreElgot.html#12189" class="Function">pres₂</a> <a id="12195" class="Symbol">:</a> <a id="12197" class="Symbol">(</a><a id="12198" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="12211" class="Symbol">(</a><a id="12212" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12214" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="12216" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12217" class="Symbol">)</a> <a id="12219" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12221" class="Symbol">(</a><a id="12222" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12226" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="12228" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="12231" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12232" class="Symbol">))</a> <a id="12235" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12237" class="Symbol">(</a><a id="12238" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12242" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="12244" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="12249" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12250" class="Symbol">)</a> <a id="12252" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="12254" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="12260" class="Symbol">(</a><a id="12261" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12263" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="12265" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12266" class="Symbol">)</a>
|
|||
|
<a id="12280" href="Monad.Instance.K.StrongPreElgot.html#12189" class="Function">pres₂</a> <a id="12286" class="Symbol">=</a> <a id="12288" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="12309" class="Symbol">(</a><a id="12310" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="12323" class="Symbol">(</a><a id="12324" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12326" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="12328" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12329" class="Symbol">)</a> <a id="12331" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12333" class="Symbol">(</a><a id="12334" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12338" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="12340" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="12343" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12344" class="Symbol">))</a> <a id="12347" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12349" class="Symbol">(</a><a id="12350" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12354" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="12356" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="12361" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12362" class="Symbol">)</a> <a id="12364" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="12367" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="12373" class="Symbol">(</a><a id="12374" href="Categories.Category.BinaryProducts.html#2881" class="Function">⁂∘⁂</a> <a id="12378" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="12380" href="Categories.Category.BinaryProducts.html#2515" class="Function">⁂-cong₂</a> <a id="12388" href="Categories.Category.Core.html#1339" class="Function">identity²</a> <a id="12398" href="Monad.Instance.K.StrongPreElgot.html#7035" class="Function">α-η</a><a id="12401" class="Symbol">)</a> <a id="12403" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="12420" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="12433" class="Symbol">(</a><a id="12434" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12436" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="12438" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12439" class="Symbol">)</a> <a id="12441" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12443" class="Symbol">(</a><a id="12444" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12448" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="12450" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="12456" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12457" class="Symbol">)</a> <a id="12475" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="12478" href="Categories.Monad.Strong.html#1383" class="Function">SM.η-comm</a> <a id="12488" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="12505" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="12511" class="Symbol">(</a><a id="12512" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12514" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="12516" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12517" class="Symbol">)</a> <a id="12560" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="12574" href="Monad.Instance.K.StrongPreElgot.html#12574" class="Function">pres₃</a> <a id="12580" class="Symbol">:</a> <a id="12582" class="Symbol">∀</a> <a id="12584" class="Symbol">{</a><a id="12585" href="Monad.Instance.K.StrongPreElgot.html#12585" class="Bound">Z</a> <a id="12587" class="Symbol">:</a> <a id="12589" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="12592" class="Symbol">}</a> <a id="12594" class="Symbol">(</a><a id="12595" href="Monad.Instance.K.StrongPreElgot.html#12595" class="Bound">h</a> <a id="12597" class="Symbol">:</a> <a id="12599" href="Monad.Instance.K.StrongPreElgot.html#12585" class="Bound">Z</a> <a id="12601" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="12603" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="12607" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a> <a id="12609" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="12611" href="Monad.Instance.K.StrongPreElgot.html#12585" class="Bound">Z</a><a id="12612" class="Symbol">)</a> <a id="12614" class="Symbol">→</a> <a id="12616" class="Symbol">(</a><a id="12617" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="12620" class="Symbol">(</a><a id="12621" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12623" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="12625" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12626" class="Symbol">)</a> <a id="12628" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12630" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthenK.η</a> <a id="12644" class="Symbol">(</a><a id="12645" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12647" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="12649" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12650" class="Symbol">))</a> <a id="12653" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12655" class="Symbol">(</a><a id="12656" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12660" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="12662" href="Monad.Instance.K.StrongPreElgot.html#12595" class="Bound">h</a> <a id="12664" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a><a id="12666" class="Symbol">)</a> <a id="12668" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="12670" class="Symbol">((</a><a id="12672" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="12675" class="Symbol">(</a><a id="12676" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12678" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="12680" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12681" class="Symbol">)</a> <a id="12683" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12685" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthenK.η</a> <a id="12699" class="Symbol">(</a><a id="12700" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12702" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="12704" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12705" class="Symbol">)</a> <a id="12707" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12710" href="Category.Ambient.html#2115" class="Function">idC</a><a id="12713" class="Symbol">)</a> <a id="12715" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12717" href="Categories.Category.Distribut
|
|||
|
<a id="12759" href="Monad.Instance.K.StrongPreElgot.html#12574" class="Function">pres₃</a> <a id="12765" class="Symbol">{</a><a id="12766" href="Monad.Instance.K.StrongPreElgot.html#12766" class="Bound">Z</a><a id="12767" class="Symbol">}</a> <a id="12769" href="Monad.Instance.K.StrongPreElgot.html#12769" class="Bound">h</a> <a id="12771" class="Symbol">=</a> <a id="12773" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="12794" class="Symbol">(</a><a id="12795" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="12798" class="Symbol">(</a><a id="12799" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12801" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="12803" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12804" class="Symbol">)</a> <a id="12806" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12808" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthenK.η</a> <a id="12822" class="Symbol">(</a><a id="12823" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12825" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="12827" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12828" class="Symbol">))</a> <a id="12831" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12833" class="Symbol">(</a><a id="12834" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12838" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="12840" href="Monad.Instance.K.StrongPreElgot.html#12769" class="Bound">h</a> <a id="12842" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a><a id="12844" class="Symbol">)</a> <a id="12880" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="12883" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="12889" class="Symbol">(</a><a id="12890" href="Monad.Instance.K.Strong.html#5557" class="Function">τ-comm</a> <a id="12897" href="Monad.Instance.K.StrongPreElgot.html#12769" class="Bound">h</a><a id="12898" class="Symbol">)</a> <a id="12900" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="12917" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="12920" class="Symbol">(</a><a id="12921" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12923" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="12925" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12926" class="Symbol">)</a> <a id="12928" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12930" class="Symbol">((</a><a id="12932" href="Monad.Instance.K.Strong.html#3259" class="Function">τ</a> <a id="12934" class="Symbol">(</a><a id="12935" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="12937" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="12939" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="12940" class="Symbol">)</a> <a id="12942" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="12945" href="Category.Ambient.html#2115" class="Function">idC</a><a id="12948" class="Symbol">)</a> <a id="12950" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12952" href="Categories.Category.Distributive.html#3168" class="Function">distributeˡ⁻¹</a> <a id="12966" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="12968" class="Symbol">(</a><a id="12969" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="12973" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="12975" href="Monad.Instance.K.StrongPreElgot.html#12769" class="Bound">h</a><a id="12976" class="Symbol">))</a> <a id="12979" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a> <a id="13003" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="13006" href="Monad.Instance.K.StrongPreElgot.html#3684" class="Function">η'-preserves</a> <a id="13019" class="Symbol">((</a><a id="13021" href="Monad.Instance.K.Strong.html#3259" class="Function">τ</a> <a id="13023" class="Symbol">(</a><a id="13024" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="13026" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="13028" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13029" class="Symbol">)</a> <a id="13031" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="13034" href="Category.Ambient.html#2115" class="Function">idC</a><a id="13037" class="Symbol">)</a> <a id="13039" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13041" href="Categories.Category.Distributive.html#3168" class="Function">distributeˡ⁻¹</a> <a id="13055" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13057" class="Symbol">(</a><a id="13058" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="13062" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="13064" href="Monad.Instance.K.StrongPreElgot.html#12769" class="Bound">h</a><a id="13065" class="Symbol">))</a> <a id="13068" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="13085" class="Symbol">((</a><a id="13087" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="13090" class="Symbol">(</a><a id="13091" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="13093" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="13095" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13096" class="Symbol">)</a> <a id="13098" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="13101" href="Category.Ambient.html#2115" class="Function">idC</a><a id="13104" class="Symbol">)</a> <a id="13106" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13108" class="Symbol">(</a><a id="13109" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthenK.η</a> <a id="13123" class="Symbol">(</a><a id="13124" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="13126" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="13128" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13129" class="Symbol">)</a> <a id="13131" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="13134" href="Category.Ambient.html#2115" class="Function">idC</a><a id="13137" class="Symbol">)</a> <a id="13139" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13141" href="Categories.Category.Distributive.html#3168" class="Function">distributeˡ⁻¹</a> <a id="13155" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13157" class="Symbol">(</a><a id="13158" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="13162" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="13164" href="Monad.Instance.K.StrongPreElgot.html#12769" class="Bound">h</a><a id="13165" class="Symbol">))</a> <a id="13168" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a> <a id="13171" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="13174" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="13183" class="Symbol">(</a><a id="13184" href="Monad.PreElgot.html#815" class="Function">StrongPreElgotMonad.elgotalgebras</a> <a id="13218" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a><a id="13219" class="Symbol">)</a> <a id="13221" class="Symbol">(</a><a id="13222" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="13228" class="Symbol">(</a><a id="13229" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="13235" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="13237" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="13246" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="13251" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="13260" class="Symbol">))</a> <a id="13263" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="13280" class="Symbol">((</a><a id="13282" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="13285" class="Symbol">(</a><a id="13286" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="13288" href="Categories.Category.BinaryProducts.html#1053" class="Function Operator">×</a> <a id="13290" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13291" class="Symbol">)</a> <a id="13293" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13295" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthenK.η</a> <a id="13309" class="Symbol">(</a><a id="13310" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="13312" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="13314" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13315" class="Symbol">)</a> <a id="13317" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="13320" href="Category.Ambient.html#2115" class="Function">idC</a><a id="13323" class="Symbol">)</a> <a id="13325" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13327" href="Categories.Category.Distributive.html#3168" class="Function">distributeˡ⁻¹</a> <a id="13341" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13343" class="Symbol">(</a><a id="13344" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="13348" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="13350" href="Monad.Instance.K.StrongPreElgot.html#12769" class="Bound">h</a><a id="13351" class="Symbol">))</a> <a id="13354" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a> <a id="13366" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="13380" href="Monad.Instance.K.StrongPreElgot.html#13380" class="Function">pres₄</a> <a id="13386" class="Symbol">:</a> <a id="13388" class="Symbol">∀</a> <a id="13390" class="Symbol">{</a><a id="13391" href="Monad.Instance.K.StrongPreElgot.html#13391" class="Bound">Z</a> <a id="13393" class="Symbol">:</a> <a id="13395" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="13398" class="Symbol">}</a> <a id="13400" class="Symbol">(</a><a id="13401" href="Monad.Instance.K.StrongPreElgot.html#13401" class="Bound">h</a> <a id="13403" class="Symbol">:</a> <a id="13405" href="Monad.Instance.K.StrongPreElgot.html#13391" class="Bound">Z</a> <a id="13407" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="13409" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="13413" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a> <a id="13415" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="13417" href="Monad.Instance.K.StrongPreElgot.html#13391" class="Bound">Z</a><a id="13418" class="Symbol">)</a> <a id="13420" class="Symbol">→</a> <a id="13422" class="Symbol">(</a><a id="13423" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="13436" class="Symbol">(</a><a id="13437" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="13439" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="13441" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13442" class="Symbol">)</a> <a id="13444" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13446" class="Symbol">(</a><a id="13447" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="13451" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="13453" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="13456" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13457" class="Symbol">))</a> <a id="13460" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13462" class="Symbol">(</a><a id="13463" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="13467" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="13469" href="Monad.Instance.K.StrongPreElgot.html#13401" class="Bound">h</a> <a id="13471" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a><a id="13473" class="Symbol">)</a> <a id="13475" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="13477" class="Symbol">((</a><a id="13479" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="13492" class="Symbol">(</a><a id="13493" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="13495" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="13497" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13498" class="Symbol">)</a> <a id="13500" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13502" class="Symbol">(</a><a id="13503" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="13507" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="13509" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="13512" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13513" class="Symbol">)</a> <a id="13515" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="13518" href="Category.Ambient.html#2115" class="Function">idC</a><a id="13521" class="Symbol">)</a> <a id="13523" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13525" href="Categories.Category.Distributive.html#3168" class="
|
|||
|
<a id="13567" href="Monad.Instance.K.StrongPreElgot.html#13380" class="Function">pres₄</a> <a id="13573" class="Symbol">{</a><a id="13574" href="Monad.Instance.K.StrongPreElgot.html#13574" class="Bound">Z</a><a id="13575" class="Symbol">}</a> <a id="13577" href="Monad.Instance.K.StrongPreElgot.html#13577" class="Bound">h</a> <a id="13579" class="Symbol">=</a> <a id="13581" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
|||
|
<a id="13602" class="Symbol">(</a><a id="13603" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="13616" class="Symbol">(</a><a id="13617" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="13619" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="13621" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13622" class="Symbol">)</a> <a id="13624" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13626" class="Symbol">(</a><a id="13627" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="13631" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="13633" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="13636" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13637" class="Symbol">))</a> <a id="13640" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13642" class="Symbol">(</a><a id="13643" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="13647" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="13649" href="Monad.Instance.K.StrongPreElgot.html#13577" class="Bound">h</a> <a id="13651" href="Monad.Instance.K.StrongPreElgot.html#2942" class="Function Operator">#K</a><a id="13653" class="Symbol">)</a> <a id="13693" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="13696" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="13702" class="Symbol">(</a><a id="13703" href="Categories.Category.BinaryProducts.html#2881" class="Function">⁂∘⁂</a> <a id="13707" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="13709" href="Categories.Category.BinaryProducts.html#2515" class="Function">⁂-cong₂</a> <a id="13717" href="Categories.Category.Core.html#1339" class="Function">identity²</a> <a id="13727" class="Symbol">(</a><a id="13728" href="Monad.Instance.K.StrongPreElgot.html#3684" class="Function">η'-preserves</a> <a id="13741" href="Monad.Instance.K.StrongPreElgot.html#13577" class="Bound">h</a><a id="13742" class="Symbol">))</a> <a id="13745" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="13762" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="13775" class="Symbol">(</a><a id="13776" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="13778" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="13780" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13781" class="Symbol">)</a> <a id="13783" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13785" class="Symbol">(</a><a id="13786" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="13790" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="13792" class="Symbol">((</a><a id="13794" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="13797" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a> <a id="13799" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="13802" href="Category.Ambient.html#2115" class="Function">idC</a><a id="13805" class="Symbol">)</a> <a id="13807" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13809" href="Monad.Instance.K.StrongPreElgot.html#13577" class="Bound">h</a><a id="13810" class="Symbol">)</a> <a id="13812" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a><a id="13814" class="Symbol">)</a> <a id="13853" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="13856" href="Monad.PreElgot.html#1614" class="Function">StrongPreElgotMonad.strengthen-preserves</a> <a id="13897" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a> <a id="13899" class="Symbol">((</a><a id="13901" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="13904" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a> <a id="13906" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="13909" href="Category.Ambient.html#2115" class="Function">idC</a><a id="13912" class="Symbol">)</a> <a id="13914" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13916" href="Monad.Instance.K.StrongPreElgot.html#13577" class="Bound">h</a><a id="13917" class="Symbol">)</a> <a id="13919" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="13936" class="Symbol">((</a><a id="13938" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="13951" class="Symbol">(</a><a id="13952" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="13954" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="13956" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="13957" class="Symbol">)</a> <a id="13959" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="13962" href="Category.Ambient.html#2115" class="Function">idC</a><a id="13965" class="Symbol">)</a> <a id="13967" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13969" href="Categories.Category.Distributive.html#3168" class="Function">distributeˡ⁻¹</a> <a id="13983" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="13985" class="Symbol">(</a><a id="13986" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="13990" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="13992" class="Symbol">(</a><a id="13993" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="13996" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a> <a id="13998" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="14001" href="Category.Ambient.html#2115" class="Function">idC</a><a id="14004" class="Symbol">)</a> <a id="14006" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="14008" href="Monad.Instance.K.StrongPreElgot.html#13577" class="Bound">h</a><a id="14009" class="Symbol">))</a> <a id="14012" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a> <a id="14027" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="14030" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="14034" class="Symbol">(</a><a id="14035" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="14044" class="Symbol">(</a><a id="14045" href="Monad.PreElgot.html#815" class="Function">StrongPreElgotMonad.elgotalgebras</a> <a id="14079" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a><a id="14080" class="Symbol">)</a> <a id="14082" class="Symbol">(</a><a id="14083" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="14091" class="Symbol">(</a><a id="14092" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="14098" class="Symbol">(</a><a id="14099" href="Categories.Category.BinaryProducts.html#2881" class="Function">⁂∘⁂</a> <a id="14103" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="14105" href="Categories.Category.BinaryProducts.html#2515" class="Function">⁂-cong₂</a> <a id="14113" href="Categories.Category.Core.html#1339" class="Function">identity²</a> <a id="14123" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="14127" class="Symbol">))))</a> <a id="14132" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="14149" class="Symbol">(((</a><a id="14152" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="14165" class="Symbol">(</a><a id="14166" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="14168" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="14170" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="14171" class="Symbol">)</a> <a id="14173" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="14176" href="Category.Ambient.html#2115" class="Function">idC</a><a id="14179" class="Symbol">)</a> <a id="14181" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="14183" class="Symbol">(</a><a id="14184" href="Categories.Category.Distributive.html#3168" class="Function">distributeˡ⁻¹</a> <a id="14198" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="14200" class="Symbol">(</a><a id="14201" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="14205" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="14207" class="Symbol">(</a><a id="14208" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="14211" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a> <a id="14213" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="14216" href="Category.Ambient.html#2115" class="Function">idC</a><a id="14219" class="Symbol">)))</a> <a id="14223" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="14225" class="Symbol">(</a><a id="14226" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="14230" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="14232" href="Monad.Instance.K.StrongPreElgot.html#13577" class="Bound">h</a><a id="14233" class="Symbol">))</a> <a id="14236" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a><a id="14238" class="Symbol">)</a> <a id="14240" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="14243" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="14247" class="Symbol">(</a><a id="14248" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="14257" class="Symbol">(</a><a id="14258" href="Monad.PreElgot.html#815" class="Function">StrongPreElgotMonad.elgotalgebras</a> <a id="14292" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a><a id="14293" class="Symbol">)</a> <a id="14295" class="Symbol">(</a><a id="14296" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="14304" class="Symbol">(</a><a id="14305" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="14311" class="Symbol">((</a><a id="14313" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="14322" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="14327" class="Symbol">(</a><a id="14328" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="14332" class="Symbol">(</a><a id="14333" href="Category.Ambient.html#2592" class="Function">⟨⟩-unique</a> <a id="14343" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a> <a id="14351" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a><a id="14358" class="Symbol">)))</a> <a id="14362" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="14370" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="14372" href="Categories.Category.Distributive.Properties.html#3231" class="Function">distributeˡ⁻¹-natural</a> <a id="14394" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="14398" class="Symbol">(</a><a id="14399" href="Monad.Instanc
|
|||
|
<a id="14430" class="Symbol">((</a><a id="14432" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="14445" class="Symbol">(</a><a id="14446" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="14448" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="14450" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="14451" class="Symbol">)</a> <a id="14453" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="14456" href="Category.Ambient.html#2115" class="Function">idC</a><a id="14459" class="Symbol">)</a> <a id="14461" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="14463" class="Symbol">((</a><a id="14465" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="14469" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="14471" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="14474" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="14475" class="Symbol">)</a> <a id="14477" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="14480" href="Category.Ambient.html#2115" class="Function">idC</a><a id="14483" class="Symbol">)</a> <a id="14485" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="14487" href="Categories.Category.Distributive.html#3168" class="Function">distributeˡ⁻¹</a> <a id="14501" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="14503" class="Symbol">(</a><a id="14504" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="14508" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="14510" href="Monad.Instance.K.StrongPreElgot.html#13577" class="Bound">h</a><a id="14511" class="Symbol">))</a> <a id="14514" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a> <a id="14521" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="14524" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="14533" class="Symbol">(</a><a id="14534" href="Monad.PreElgot.html#815" class="Function">StrongPreElgotMonad.elgotalgebras</a> <a id="14568" href="Monad.Instance.K.StrongPreElgot.html#1795" class="Bound">A</a><a id="14569" class="Symbol">)</a> <a id="14571" class="Symbol">(</a><a id="14572" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="14578" class="Symbol">(</a><a id="14579" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="14585" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="14587" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="14596" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="14601" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="14610" class="Symbol">))</a> <a id="14613" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
|||
|
<a id="14630" class="Symbol">((</a><a id="14632" href="Categories.NaturalTransformation.Core.html#783" class="Function">strengthen.η</a> <a id="14645" class="Symbol">(</a><a id="14646" href="Monad.Instance.K.StrongPreElgot.html#11284" class="Bound">X</a> <a id="14648" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="14650" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="14651" class="Symbol">)</a> <a id="14653" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="14655" class="Symbol">(</a><a id="14656" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="14660" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="14662" href="Monad.Instance.K.StrongPreElgot.html#2781" class="Function">η'</a> <a id="14665" href="Monad.Instance.K.StrongPreElgot.html#11288" class="Bound">Y</a><a id="14666" class="Symbol">)</a> <a id="14668" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="14671" href="Category.Ambient.html#2115" class="Function">idC</a><a id="14674" class="Symbol">)</a> <a id="14676" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="14678" href="Categories.Category.Distributive.html#3168" class="Function">distributeˡ⁻¹</a> <a id="14692" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="14694" class="Symbol">(</a><a id="14695" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="14699" href="Categories.Category.BinaryProducts.html#1465" class="Function Operator">⁂</a> <a id="14701" href="Monad.Instance.K.StrongPreElgot.html#13577" class="Bound">h</a><a id="14702" class="Symbol">))</a> <a id="14705" href="Monad.Instance.K.StrongPreElgot.html#3026" class="Function Operator">#T</a> <a id="14721" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
|||
|
<a id="14727" href="Monad.Instance.K.StrongPreElgot.html#14727" class="Function">!-unique′</a> <a id="14737" class="Symbol">:</a> <a id="14739" class="Symbol">∀</a> <a id="14741" class="Symbol">{</a><a id="14742" href="Monad.Instance.K.StrongPreElgot.html#14742" class="Bound">A</a> <a id="14744" class="Symbol">:</a> <a id="14746" href="Monad.PreElgot.html#1819" class="Record">StrongPreElgotMonad</a><a id="14765" class="Symbol">}</a> <a id="14767" class="Symbol">(</a><a id="14768" href="Monad.Instance.K.StrongPreElgot.html#14768" class="Bound">f</a> <a id="14770" class="Symbol">:</a> <a id="14772" href="Category.Construction.StrongPreElgotMonads.html#1408" class="Record">StrongPreElgotMonad-Morphism</a> <a id="14801" href="Monad.Instance.K.StrongPreElgot.html#1429" class="Function">strongPreElgot</a> <a id="14816" href="Monad.Instance.K.StrongPreElgot.html#14742" class="Bound">A</a><a id="14817" class="Symbol">)</a> <a id="14819" class="Symbol">→</a> <a id="14821" href="Category.Construction.StrongPreElgotMonads.html#1477" class="Field">StrongPreElgotMonad-Morphism.α</a> <a id="14852" class="Symbol">(</a><a id="14853" href="Monad.Instance.K.StrongPreElgot.html#1706" class="Function">!′</a> <a id="14856" class="Symbol">{</a><a id="14857" class="Argument">A</a> <a id="14859" class="Symbol">=</a> <a id="14861" href="Monad.Instance.K.StrongPreElgot.html#14742" class="Bound">A</a><a id="14862" class="Symbol">})</a> <a id="14865" href="Categories.NaturalTransformation.Equivalence.html#630" class="Function Operator">≃</a> <a id="14867" href="Category.Construction.StrongPreElgotMonads.html#1477" class="Field">StrongPreElgotMonad-Morphism.α</a> <a id="14898" href="Monad.Instance.K.StrongPreElgot.html#14768" class="Bound">f</a>
|
|||
|
<a id="14904" href="Monad.Instance.K.StrongPreElgot.html#14727" class="Function">!-unique′</a> <a id="14914" class="Symbol">{</a><a id="14915" href="Monad.Instance.K.StrongPreElgot.html#14915" class="Bound">A</a><a id="14916" class="Symbol">}</a> <a id="14918" href="Monad.Instance.K.StrongPreElgot.html#14918" class="Bound">f</a> <a id="14920" class="Symbol">{</a><a id="14921" href="Monad.Instance.K.StrongPreElgot.html#14921" class="Bound">X</a><a id="14922" class="Symbol">}</a> <a id="14924" class="Symbol">=</a> <a id="14926" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="14930" class="Symbol">(</a><a id="14931" href="Categories.FreeObjects.Free.html#1017" class="Field">FreeObject.*-uniq</a>
|
|||
|
<a id="14981" class="Symbol">(</a><a id="14982" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="14995" href="Monad.Instance.K.StrongPreElgot.html#14921" class="Bound">X</a><a id="14996" class="Symbol">)</a>
|
|||
|
<a id="15031" class="Symbol">{</a><a id="15032" class="Argument">A</a> <a id="15034" class="Symbol">=</a> <a id="15036" class="Keyword">record</a> <a id="15043" class="Symbol">{</a> <a id="15045" href="Algebra.Elgot.html#16018" class="Field">A</a> <a id="15047" class="Symbol">=</a> <a id="15049" href="Categories.Functor.Core.html#432" class="Function">T.F.F₀</a> <a id="15056" href="Monad.Instance.K.StrongPreElgot.html#14921" class="Bound">X</a> <a id="15058" class="Symbol">;</a> <a id="15060" href="Algebra.Elgot.html#16032" class="Field">algebra</a> <a id="15068" class="Symbol">=</a> <a id="15070" href="Monad.PreElgot.html#815" class="Function">StrongPreElgotMonad.elgotalgebras</a> <a id="15104" href="Monad.Instance.K.StrongPreElgot.html#14915" class="Bound">A</a> <a id="15106" class="Symbol">}}</a>
|
|||
|
<a id="15142" class="Symbol">(</a><a id="15143" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="15149" href="Monad.Instance.K.StrongPreElgot.html#14921" class="Bound">X</a><a id="15150" class="Symbol">)</a>
|
|||
|
<a id="15185" class="Symbol">(</a><a id="15186" class="Keyword">record</a> <a id="15193" class="Symbol">{</a> <a id="15195" href="Category.Construction.ElgotAlgebras.html#794" class="Field">h</a> <a id="15197" class="Symbol">=</a> <a id="15199" href="Categories.NaturalTransformation.Core.html#783" class="Function">α.η</a> <a id="15203" href="Monad.Instance.K.StrongPreElgot.html#14921" class="Bound">X</a> <a id="15205" class="Symbol">;</a> <a id="15207" href="Category.Construction.ElgotAlgebras.html#812" class="Field">preserves</a> <a id="15217" class="Symbol">=</a> <a id="15219" href="Category.Construction.StrongPreElgotMonads.html#1827" class="Function">α-preserves</a> <a id="15231" class="Symbol">_</a> <a id="15233" class="Symbol">})</a>
|
|||
|
<a id="15269" href="Category.Construction.StrongPreElgotMonads.html#1568" class="Function">α-η</a><a id="15272" class="Symbol">)</a>
|
|||
|
<a id="15280" class="Keyword">where</a>
|
|||
|
<a id="15294" class="Keyword">open</a> <a id="15299" href="Category.Construction.StrongPreElgotMonads.html#1408" class="Module">StrongPreElgotMonad-Morphism</a> <a id="15328" href="Monad.Instance.K.StrongPreElgot.html#14918" class="Bound">f</a> <a id="15330" class="Keyword">using</a> <a id="15336" class="Symbol">(</a><a id="15337" href="Category.Construction.StrongPreElgotMonads.html#1477" class="Field">α</a><a id="15338" class="Symbol">;</a> <a id="15340" href="Category.Construction.StrongPreElgotMonads.html#1568" class="Field">α-η</a><a id="15343" class="Symbol">;</a> <a id="15345" href="Category.Construction.StrongPreElgotMonads.html#1827" class="Field">α-preserves</a><a id="15356" class="Symbol">)</a>
|
|||
|
<a id="15366" class="Keyword">open</a> <a id="15371" href="Monad.PreElgot.html#1819" class="Module">StrongPreElgotMonad</a> <a id="15391" href="Monad.Instance.K.StrongPreElgot.html#14915" class="Bound">A</a> <a id="15393" class="Keyword">using</a> <a id="15399" class="Symbol">(</a><a id="15400" href="Monad.PreElgot.html#1879" class="Field">SM</a><a id="15402" class="Symbol">)</a>
|
|||
|
<a id="15412" class="Keyword">open</a> <a id="15417" href="Categories.Monad.Strong.html#1832" class="Module">StrongMonad</a> <a id="15429" href="Monad.PreElgot.html#1879" class="Function">SM</a> <a id="15432" class="Keyword">using</a> <a id="15438" class="Symbol">()</a> <a id="15441" class="Keyword">renaming</a> <a id="15450" class="Symbol">(</a><a id="15451" href="Categories.Monad.Strong.html#1918" class="Field">M</a> <a id="15453" class="Symbol">to</a> <a id="15456" class="Field">T</a><a id="15457" class="Symbol">)</a>
|
|||
|
</pre>
|