mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
195 lines
137 KiB
HTML
195 lines
137 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="generator" content="pandoc" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||
<title>Monad.Instance.K.PreElgot</title>
|
||
<style>
|
||
code{white-space: pre-wrap;}
|
||
span.smallcaps{font-variant: small-caps;}
|
||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||
div.column{flex: auto; overflow-x: auto;}
|
||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||
/* The extra [class] is a hack that increases specificity enough to
|
||
override a similar rule in reveal.js */
|
||
ul.task-list[class]{list-style: none;}
|
||
ul.task-list li input[type="checkbox"] {
|
||
font-size: inherit;
|
||
width: 0.8em;
|
||
margin: 0 0.8em 0.2em -1.6em;
|
||
vertical-align: middle;
|
||
}
|
||
</style>
|
||
<link rel="stylesheet" href="Agda.css" />
|
||
<!--[if lt IE 9]>
|
||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||
<![endif]-->
|
||
</head>
|
||
<body>
|
||
<!--
|
||
<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.Relative.html" class="Module">Categories.Monad.Relative</a> <a id="324" class="Keyword">renaming</a> <a id="333" class="Symbol">(</a><a id="334" href="Categories.Monad.Relative.html#602" class="Record">Monad</a> <a id="340" class="Symbol">to</a> <a id="343" class="Record">RMonad</a><a id="349" class="Symbol">)</a>
|
||
<a id="351" class="Keyword">open</a> <a id="356" class="Keyword">import</a> <a id="363" href="Categories.Monad.Construction.Kleisli.html" class="Module">Categories.Monad.Construction.Kleisli</a>
|
||
<a id="401" class="Keyword">import</a> <a id="408" href="Monad.Instance.K.html" class="Module">Monad.Instance.K</a> <a id="425" class="Symbol">as</a> <a id="428" class="Module">MIK</a>
|
||
</pre>-->
|
||
<pre class="Agda"><a id="449" class="Keyword">module</a> <a id="456" href="Monad.Instance.K.PreElgot.html" class="Module">Monad.Instance.K.PreElgot</a> <a id="482" class="Symbol">{</a><a id="483" href="Monad.Instance.K.PreElgot.html#483" class="Bound">o</a> <a id="485" href="Monad.Instance.K.PreElgot.html#485" class="Bound">ℓ</a> <a id="487" href="Monad.Instance.K.PreElgot.html#487" class="Bound">e</a><a id="488" class="Symbol">}</a> <a id="490" class="Symbol">(</a><a id="491" href="Monad.Instance.K.PreElgot.html#491" class="Bound">ambient</a> <a id="499" class="Symbol">:</a> <a id="501" href="Category.Ambient.html#1681" class="Record">Ambient</a> <a id="509" href="Monad.Instance.K.PreElgot.html#483" class="Bound">o</a> <a id="511" href="Monad.Instance.K.PreElgot.html#485" class="Bound">ℓ</a> <a id="513" href="Monad.Instance.K.PreElgot.html#487" class="Bound">e</a><a id="514" class="Symbol">)</a> <a id="516" class="Symbol">(</a><a id="517" href="Monad.Instance.K.PreElgot.html#517" class="Bound">MK</a> <a id="520" class="Symbol">:</a> <a id="522" href="Monad.Instance.K.html#1123" class="Record">MIK.MonadK</a> <a id="533" href="Monad.Instance.K.PreElgot.html#491" class="Bound">ambient</a><a id="540" class="Symbol">)</a> <a id="542" class="Keyword">where</a>
|
||
<a id="548" class="Keyword">open</a> <a id="553" href="Category.Ambient.html#1681" class="Module">Ambient</a> <a id="561" href="Monad.Instance.K.PreElgot.html#491" class="Bound">ambient</a>
|
||
<a id="569" class="Keyword">open</a> <a id="574" href="Monad.Instance.K.html" class="Module">MIK</a> <a id="578" href="Monad.Instance.K.PreElgot.html#491" class="Bound">ambient</a>
|
||
<a id="586" class="Keyword">open</a> <a id="591" href="Monad.Instance.K.html#1123" class="Module">MonadK</a> <a id="598" href="Monad.Instance.K.PreElgot.html#517" class="Bound">MK</a>
|
||
<a id="601" class="Keyword">open</a> <a id="606" class="Keyword">import</a> <a id="613" href="Algebra.Elgot.html" class="Module">Algebra.Elgot</a> <a id="627" href="Categories.Category.Extensive.html#734" class="Function">cocartesian</a>
|
||
<a id="639" class="Keyword">open</a> <a id="644" class="Keyword">import</a> <a id="651" href="Monad.PreElgot.html" class="Module">Monad.PreElgot</a> <a id="666" href="Monad.Instance.K.PreElgot.html#491" class="Bound">ambient</a>
|
||
<a id="674" class="Keyword">open</a> <a id="679" class="Keyword">import</a> <a id="686" href="Monad.Instance.K.html" class="Module">Monad.Instance.K</a> <a id="703" href="Monad.Instance.K.PreElgot.html#491" class="Bound">ambient</a>
|
||
<a id="711" class="Keyword">open</a> <a id="716" class="Keyword">import</a> <a id="723" href="Monad.Instance.K.Commutative.html" class="Module">Monad.Instance.K.Commutative</a> <a id="752" href="Monad.Instance.K.PreElgot.html#491" class="Bound">ambient</a> <a id="760" href="Monad.Instance.K.PreElgot.html#517" class="Bound">MK</a>
|
||
<a id="763" class="Keyword">open</a> <a id="768" class="Keyword">import</a> <a id="775" href="Monad.Instance.K.Strong.html" class="Module">Monad.Instance.K.Strong</a> <a id="799" href="Monad.Instance.K.PreElgot.html#491" class="Bound">ambient</a> <a id="807" href="Monad.Instance.K.PreElgot.html#517" class="Bound">MK</a>
|
||
<a id="810" class="Keyword">open</a> <a id="815" class="Keyword">import</a> <a id="822" href="Category.Construction.PreElgotMonads.html" class="Module">Category.Construction.PreElgotMonads</a> <a id="859" href="Monad.Instance.K.PreElgot.html#491" class="Bound">ambient</a>
|
||
<a id="867" class="Keyword">open</a> <a id="872" class="Keyword">import</a> <a id="879" href="Category.Construction.ElgotAlgebras.html" class="Module">Category.Construction.ElgotAlgebras</a> <a id="915" href="Categories.Category.Extensive.html#734" class="Function">cocartesian</a>
|
||
|
||
<a id="928" class="Keyword">open</a> <a id="933" href="Categories.Category.Core.html#1530" class="Module">Equiv</a>
|
||
<a id="939" class="Keyword">open</a> <a id="944" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
|
||
<a id="957" class="Keyword">open</a> <a id="962" href="Category.Ambient.html#9087" class="Module">MR</a> <a id="965" href="Category.Ambient.html#1757" class="Function">C</a>
|
||
<a id="967" class="Keyword">open</a> <a id="972" href="Category.Ambient.html#9069" class="Module">M</a> <a id="974" href="Category.Ambient.html#1757" class="Function">C</a>
|
||
</pre>
|
||
<h1 id="k-is-the-initial-pre-elgot-monad">K is the initial pre-Elgot
|
||
monad</h1>
|
||
<pre class="Agda"><a id="isPreElgot"></a><a id="1025" href="Monad.Instance.K.PreElgot.html#1025" class="Function">isPreElgot</a> <a id="1036" class="Symbol">:</a> <a id="1038" href="Monad.PreElgot.html#563" class="Record">IsPreElgot</a> <a id="1049" href="Monad.Instance.K.html#1609" class="Function">monadK</a>
|
||
<a id="1056" href="Monad.Instance.K.PreElgot.html#1025" class="Function">isPreElgot</a> <a id="1067" class="Symbol">=</a> <a id="1069" class="Keyword">record</a>
|
||
<a id="1078" class="Symbol">{</a> <a id="1080" href="Monad.PreElgot.html#815" class="Field">elgotalgebras</a> <a id="1094" class="Symbol">=</a> <a id="1096" class="Symbol">λ</a> <a id="1098" class="Symbol">{</a><a id="1099" href="Monad.Instance.K.PreElgot.html#1099" class="Bound">X</a><a id="1100" class="Symbol">}</a> <a id="1102" class="Symbol">→</a> <a id="1104" href="Algebra.Elgot.html#16032" class="Field">Elgot-Algebra.algebra</a> <a id="1126" class="Symbol">(</a><a id="1127" href="Monad.Instance.K.html#1333" class="Function">algebras</a> <a id="1136" href="Monad.Instance.K.PreElgot.html#1099" class="Bound">X</a><a id="1137" class="Symbol">)</a>
|
||
<a id="1141" class="Symbol">;</a> <a id="1143" href="Monad.PreElgot.html#998" class="Field">extend-preserves</a> <a id="1160" class="Symbol">=</a> <a id="1162" class="Symbol">λ</a> <a id="1164" href="Monad.Instance.K.PreElgot.html#1164" class="Bound">f</a> <a id="1166" href="Monad.Instance.K.PreElgot.html#1166" class="Bound">h</a> <a id="1168" class="Symbol">→</a> <a id="1170" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="1174" class="Symbol">(</a><a id="1175" href="Monad.Instance.K.Commutative.html#8711" class="Function">extend-preserve</a> <a id="1191" href="Monad.Instance.K.PreElgot.html#1166" class="Bound">h</a> <a id="1193" href="Monad.Instance.K.PreElgot.html#1164" class="Bound">f</a><a id="1194" class="Symbol">)</a>
|
||
<a id="1198" class="Symbol">}</a>
|
||
<a id="1202" class="Keyword">where</a> <a id="1208" class="Keyword">open</a> <a id="1213" href="Monad.Instance.K.html#1775" class="Module">kleisliK</a> <a id="1222" class="Keyword">using</a> <a id="1228" class="Symbol">(</a><a id="1229" href="Categories.Monad.Relative.html#895" class="Function">extend</a><a id="1235" class="Symbol">)</a>
|
||
|
||
<a id="preElgot"></a><a id="1238" href="Monad.Instance.K.PreElgot.html#1238" class="Function">preElgot</a> <a id="1247" class="Symbol">:</a> <a id="1249" href="Monad.PreElgot.html#1160" class="Record">PreElgotMonad</a>
|
||
<a id="1263" href="Monad.Instance.K.PreElgot.html#1238" class="Function">preElgot</a> <a id="1272" class="Symbol">=</a> <a id="1274" class="Keyword">record</a> <a id="1281" class="Symbol">{</a> <a id="1283" href="Monad.PreElgot.html#1214" class="Field">T</a> <a id="1285" class="Symbol">=</a> <a id="1287" href="Monad.Instance.K.html#1609" class="Function">monadK</a> <a id="1294" class="Symbol">;</a> <a id="1296" href="Monad.PreElgot.html#1232" class="Field">isPreElgot</a> <a id="1307" class="Symbol">=</a> <a id="1309" href="Monad.Instance.K.PreElgot.html#1025" class="Function">isPreElgot</a> <a id="1320" class="Symbol">}</a>
|
||
|
||
<a id="isInitialPreElgot"></a><a id="1323" href="Monad.Instance.K.PreElgot.html#1323" class="Function">isInitialPreElgot</a> <a id="1341" class="Symbol">:</a> <a id="1343" href="Categories.Object.Initial.html#422" class="Record">IsInitial</a> <a id="1353" href="Category.Construction.PreElgotMonads.html#1575" class="Function">PreElgotMonads</a> <a id="1368" href="Monad.Instance.K.PreElgot.html#1238" class="Function">preElgot</a>
|
||
<a id="1377" href="Monad.Instance.K.PreElgot.html#1323" class="Function">isInitialPreElgot</a> <a id="1395" class="Symbol">=</a> <a id="1397" class="Keyword">record</a>
|
||
<a id="1406" class="Symbol">{</a> <a id="1408" href="Categories.Object.Initial.html#478" class="Field">!</a> <a id="1410" class="Symbol">=</a> <a id="1412" href="Monad.Instance.K.PreElgot.html#1456" class="Function">!′</a>
|
||
<a id="1417" class="Symbol">;</a> <a id="1419" href="Categories.Object.Initial.html#506" class="Field">!-unique</a> <a id="1428" class="Symbol">=</a> <a id="1430" href="Monad.Instance.K.PreElgot.html#10601" class="Function">!-unique′</a>
|
||
<a id="1442" class="Symbol">}</a>
|
||
<a id="1446" class="Keyword">where</a>
|
||
<a id="1456" href="Monad.Instance.K.PreElgot.html#1456" class="Function">!′</a> <a id="1459" class="Symbol">:</a> <a id="1461" class="Symbol">∀</a> <a id="1463" class="Symbol">{</a><a id="1464" href="Monad.Instance.K.PreElgot.html#1464" class="Bound">A</a> <a id="1466" class="Symbol">:</a> <a id="1468" href="Monad.PreElgot.html#1160" class="Record">PreElgotMonad</a><a id="1481" class="Symbol">}</a> <a id="1483" class="Symbol">→</a> <a id="1485" href="Category.Construction.PreElgotMonads.html#1190" class="Record">PreElgotMonad-Morphism</a> <a id="1508" href="Monad.Instance.K.PreElgot.html#1238" class="Function">preElgot</a> <a id="1517" href="Monad.Instance.K.PreElgot.html#1464" class="Bound">A</a>
|
||
<a id="1523" href="Monad.Instance.K.PreElgot.html#1456" class="Function">!′</a> <a id="1526" class="Symbol">{</a><a id="1527" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a><a id="1528" class="Symbol">}</a> <a id="1530" class="Symbol">=</a> <a id="1532" class="Keyword">record</a>
|
||
<a id="1545" class="Symbol">{</a> <a id="1547" href="Category.Construction.PreElgotMonads.html#1253" class="Field">α</a> <a id="1549" class="Symbol">=</a> <a id="1551" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="1560" class="Symbol">(</a><a id="1561" class="Keyword">record</a>
|
||
<a id="1576" class="Symbol">{</a> <a id="1578" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="1580" class="Symbol">=</a> <a id="1582" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a>
|
||
<a id="1593" class="Symbol">;</a> <a id="1595" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="1603" class="Symbol">=</a> <a id="1605" href="Monad.Instance.K.PreElgot.html#3507" class="Function">commute</a>
|
||
<a id="1621" class="Symbol">})</a>
|
||
<a id="1630" class="Symbol">;</a> <a id="1632" href="Category.Construction.PreElgotMonads.html#1344" class="Field">α-η</a> <a id="1636" class="Symbol">=</a> <a id="1638" href="Categories.FreeObjects.Free.html#937" class="Field">FreeObject.*-lift</a> <a id="1656" class="Symbol">(</a><a id="1657" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="1670" class="Symbol">_)</a> <a id="1673" class="Symbol">(</a><a id="1674" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="1680" class="Symbol">_)</a>
|
||
<a id="1689" class="Symbol">;</a> <a id="1691" href="Category.Construction.PreElgotMonads.html#1400" class="Field">α-μ</a> <a id="1695" class="Symbol">=</a> <a id="1697" href="Monad.Instance.K.PreElgot.html#6624" class="Function">α-μ</a>
|
||
<a id="1707" class="Symbol">;</a> <a id="1709" href="Category.Construction.PreElgotMonads.html#1490" class="Field">preserves</a> <a id="1719" class="Symbol">=</a> <a id="1721" class="Symbol">λ</a> <a id="1723" class="Symbol">{</a><a id="1724" href="Monad.Instance.K.PreElgot.html#1724" class="Bound">X</a><a id="1725" class="Symbol">}</a> <a id="1727" class="Symbol">{</a><a id="1728" href="Monad.Instance.K.PreElgot.html#1728" class="Bound">B</a><a id="1729" class="Symbol">}</a> <a id="1731" href="Monad.Instance.K.PreElgot.html#1731" class="Bound">f</a> <a id="1733" class="Symbol">→</a> <a id="1735" href="Category.Construction.ElgotAlgebras.html#812" class="Field">Elgot-Algebra-Morphism.preserves</a> <a id="1768" class="Symbol">(((</a><a id="1771" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="1784" href="Monad.Instance.K.PreElgot.html#1728" class="Bound">B</a><a id="1785" class="Symbol">)</a> <a id="1787" href="Categories.FreeObjects.Free.html#880" class="Field Operator">FreeObject.*</a><a id="1799" class="Symbol">)</a> <a id="1801" class="Symbol">{</a><a id="1802" class="Argument">A</a> <a id="1804" class="Symbol">=</a> <a id="1806" class="Keyword">record</a> <a id="1813" class="Symbol">{</a> <a id="1815" href="Algebra.Elgot.html#16018" class="Field">A</a> <a id="1817" class="Symbol">=</a> <a id="1819" href="Categories.Functor.Core.html#432" class="Function">T.F.F₀</a> <a id="1826" href="Monad.Instance.K.PreElgot.html#1728" class="Bound">B</a> <a id="1828" class="Symbol">;</a> <a id="1830" href="Algebra.Elgot.html#16032" class="Field">algebra</a> <a id="1838" class="Symbol">=</a> <a id="1840" href="Monad.PreElgot.html#815" class="Function">PreElgotMonad.elgotalgebras</a> <a id="1868" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a> <a id="1870" class="Symbol">}}</a> <a id="1873" class="Symbol">(</a><a id="1874" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="1880" href="Monad.Instance.K.PreElgot.html#1728" class="Bound">B</a><a id="1881" class="Symbol">))</a>
|
||
<a id="1890" class="Symbol">}</a>
|
||
<a id="1898" class="Keyword">where</a>
|
||
<a id="1912" class="Keyword">open</a> <a id="1917" href="Monad.PreElgot.html#1160" class="Module">PreElgotMonad</a> <a id="1931" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a> <a id="1933" class="Keyword">using</a> <a id="1939" class="Symbol">(</a><a id="1940" href="Monad.PreElgot.html#1214" class="Field">T</a><a id="1941" class="Symbol">)</a>
|
||
<a id="1951" class="Keyword">open</a> <a id="1956" href="Monad.Instance.K.PreElgot.html#343" class="Module">RMonad</a> <a id="1963" class="Symbol">(</a><a id="1964" href="Categories.Monad.Construction.Kleisli.html#2851" class="Function">Monad⇒Kleisli</a> <a id="1978" href="Category.Ambient.html#1757" class="Function">C</a> <a id="1980" href="Monad.PreElgot.html#1214" class="Field">T</a><a id="1981" class="Symbol">)</a> <a id="1983" class="Keyword">using</a> <a id="1989" class="Symbol">(</a><a id="1990" href="Categories.Monad.Relative.html#895" class="Field">extend</a><a id="1996" class="Symbol">)</a>
|
||
<a id="2006" class="Keyword">module</a> <a id="2013" href="Monad.Instance.K.PreElgot.html#2013" class="Module">T</a> <a id="2015" class="Symbol">=</a> <a id="2017" href="Categories.Monad.html#454" class="Module">Monad</a> <a id="2023" href="Monad.PreElgot.html#1214" class="Field">T</a>
|
||
<a id="2033" class="Keyword">open</a> <a id="2038" href="Monad.Instance.K.html#1672" class="Module">monadK</a> <a id="2045" class="Keyword">using</a> <a id="2051" class="Symbol">()</a> <a id="2054" class="Keyword">renaming</a> <a id="2063" class="Symbol">(</a><a id="2064" href="Categories.Monad.html#547" class="Function">η</a> <a id="2066" class="Symbol">to</a> <a id="2069" class="Function">ηK</a><a id="2071" class="Symbol">;</a> <a id="2073" href="Categories.Monad.html#583" class="Function">μ</a> <a id="2075" class="Symbol">to</a> <a id="2078" class="Function">μK</a><a id="2080" class="Symbol">)</a>
|
||
<a id="2090" class="Keyword">open</a> <a id="2095" href="Algebra.Elgot.html#1845" class="Module">Elgot-Algebra-on</a> <a id="2112" class="Keyword">using</a> <a id="2118" class="Symbol">(</a><a id="2119" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a><a id="2127" class="Symbol">)</a>
|
||
<a id="2137" href="Monad.Instance.K.PreElgot.html#2137" class="Function">T-Alg</a> <a id="2143" class="Symbol">:</a> <a id="2145" class="Symbol">∀</a> <a id="2147" class="Symbol">(</a><a id="2148" href="Monad.Instance.K.PreElgot.html#2148" class="Bound">X</a> <a id="2150" class="Symbol">:</a> <a id="2152" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="2155" class="Symbol">)</a> <a id="2157" class="Symbol">→</a> <a id="2159" href="Algebra.Elgot.html#15964" class="Record">Elgot-Algebra</a>
|
||
<a id="2181" href="Monad.Instance.K.PreElgot.html#2137" class="Function">T-Alg</a> <a id="2187" href="Monad.Instance.K.PreElgot.html#2187" class="Bound">X</a> <a id="2189" class="Symbol">=</a> <a id="2191" class="Keyword">record</a> <a id="2198" class="Symbol">{</a> <a id="2200" href="Algebra.Elgot.html#16018" class="Field">A</a> <a id="2202" class="Symbol">=</a> <a id="2204" href="Categories.Functor.Core.html#797" class="Function">T.F.₀</a> <a id="2210" href="Monad.Instance.K.PreElgot.html#2187" class="Bound">X</a> <a id="2212" class="Symbol">;</a> <a id="2214" href="Algebra.Elgot.html#16032" class="Field">algebra</a> <a id="2222" class="Symbol">=</a> <a id="2224" href="Monad.PreElgot.html#815" class="Function">PreElgotMonad.elgotalgebras</a> <a id="2252" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a> <a id="2254" class="Symbol">}</a>
|
||
<a id="2264" href="Monad.Instance.K.PreElgot.html#2264" class="Function">K-Alg</a> <a id="2270" class="Symbol">:</a> <a id="2272" class="Symbol">∀</a> <a id="2274" class="Symbol">(</a><a id="2275" href="Monad.Instance.K.PreElgot.html#2275" class="Bound">X</a> <a id="2277" class="Symbol">:</a> <a id="2279" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="2282" class="Symbol">)</a> <a id="2284" class="Symbol">→</a> <a id="2286" href="Algebra.Elgot.html#15964" class="Record">Elgot-Algebra</a>
|
||
<a id="2308" href="Monad.Instance.K.PreElgot.html#2264" class="Function">K-Alg</a> <a id="2314" href="Monad.Instance.K.PreElgot.html#2314" class="Bound">X</a> <a id="2316" class="Symbol">=</a> <a id="2318" class="Keyword">record</a> <a id="2325" class="Symbol">{</a> <a id="2327" href="Algebra.Elgot.html#16018" class="Field">A</a> <a id="2329" class="Symbol">=</a> <a id="2331" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="2335" href="Monad.Instance.K.PreElgot.html#2314" class="Bound">X</a> <a id="2337" class="Symbol">;</a> <a id="2339" href="Algebra.Elgot.html#16032" class="Field">algebra</a> <a id="2347" class="Symbol">=</a> <a id="2349" href="Algebra.Elgot.html#16032" class="Field">Elgot-Algebra.algebra</a> <a id="2371" class="Symbol">(</a><a id="2372" href="Monad.Instance.K.html#1333" class="Function">algebras</a> <a id="2381" href="Monad.Instance.K.PreElgot.html#2314" class="Bound">X</a><a id="2382" class="Symbol">)</a> <a id="2384" class="Symbol">}</a>
|
||
<a id="2394" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="2397" class="Symbol">:</a> <a id="2399" class="Symbol">∀</a> <a id="2401" class="Symbol">(</a><a id="2402" href="Monad.Instance.K.PreElgot.html#2402" class="Bound">X</a> <a id="2404" class="Symbol">:</a> <a id="2406" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="2409" class="Symbol">)</a> <a id="2411" class="Symbol">→</a> <a id="2413" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="2417" href="Monad.Instance.K.PreElgot.html#2402" class="Bound">X</a> <a id="2419" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="2421" href="Categories.Functor.Core.html#797" class="Function">T.F.₀</a> <a id="2427" href="Monad.Instance.K.PreElgot.html#2402" class="Bound">X</a>
|
||
<a id="2437" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="2440" href="Monad.Instance.K.PreElgot.html#2440" class="Bound">X</a> <a id="2442" class="Symbol">=</a> <a id="2444" href="Category.Construction.ElgotAlgebras.html#794" class="Field">Elgot-Algebra-Morphism.h</a> <a id="2469" class="Symbol">(</a><a id="2470" href="Categories.FreeObjects.Free.html#880" class="Function Operator">_*</a> <a id="2473" class="Symbol">{</a><a id="2474" class="Argument">A</a> <a id="2476" class="Symbol">=</a> <a id="2478" href="Monad.Instance.K.PreElgot.html#2137" class="Function">T-Alg</a> <a id="2484" href="Monad.Instance.K.PreElgot.html#2440" class="Bound">X</a><a id="2485" class="Symbol">}</a> <a id="2487" class="Symbol">(</a><a id="2488" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="2494" href="Monad.Instance.K.PreElgot.html#2440" class="Bound">X</a><a id="2495" class="Symbol">))</a>
|
||
<a id="2508" class="Keyword">where</a> <a id="2514" class="Keyword">open</a> <a id="2519" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="2530" class="Symbol">(</a><a id="2531" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="2544" href="Monad.Instance.K.PreElgot.html#2440" class="Bound">X</a><a id="2545" class="Symbol">)</a>
|
||
<a id="2555" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">_#K</a> <a id="2559" class="Symbol">=</a> <a id="2561" class="Symbol">λ</a> <a id="2563" class="Symbol">{</a><a id="2564" href="Monad.Instance.K.PreElgot.html#2564" class="Bound">B</a><a id="2565" class="Symbol">}</a> <a id="2567" class="Symbol">{</a><a id="2568" href="Monad.Instance.K.PreElgot.html#2568" class="Bound">C</a><a id="2569" class="Symbol">}</a> <a id="2571" href="Monad.Instance.K.PreElgot.html#2571" class="Bound">f</a> <a id="2573" class="Symbol">→</a> <a id="2575" href="Algebra.Elgot.html#1938" class="Function Operator">Elgot-Algebra._#</a> <a id="2592" class="Symbol">(</a><a id="2593" href="Categories.FreeObjects.Free.html#838" class="Field">FreeObject.FX</a> <a id="2607" class="Symbol">(</a><a id="2608" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="2621" href="Monad.Instance.K.PreElgot.html#2568" class="Bound">C</a><a id="2622" class="Symbol">))</a> <a id="2625" class="Symbol">{</a><a id="2626" href="Monad.Instance.K.PreElgot.html#2564" class="Bound">B</a><a id="2627" class="Symbol">}</a> <a id="2629" href="Monad.Instance.K.PreElgot.html#2571" class="Bound">f</a>
|
||
<a id="2639" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">_#T</a> <a id="2643" class="Symbol">=</a> <a id="2645" class="Symbol">λ</a> <a id="2647" class="Symbol">{</a><a id="2648" href="Monad.Instance.K.PreElgot.html#2648" class="Bound">B</a><a id="2649" class="Symbol">}</a> <a id="2651" class="Symbol">{</a><a id="2652" href="Monad.Instance.K.PreElgot.html#2652" class="Bound">C</a><a id="2653" class="Symbol">}</a> <a id="2655" href="Monad.Instance.K.PreElgot.html#2655" class="Bound">f</a> <a id="2657" class="Symbol">→</a> <a id="2659" href="Algebra.Elgot.html#1938" class="Function Operator">PreElgotMonad.elgotalgebras._#</a> <a id="2690" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a> <a id="2692" class="Symbol">{</a><a id="2693" href="Monad.Instance.K.PreElgot.html#2648" class="Bound">B</a><a id="2694" class="Symbol">}</a> <a id="2696" class="Symbol">{</a><a id="2697" href="Monad.Instance.K.PreElgot.html#2652" class="Bound">C</a><a id="2698" class="Symbol">}</a> <a id="2700" href="Monad.Instance.K.PreElgot.html#2655" class="Bound">f</a>
|
||
<a id="2710" class="Comment">-- some preservation facts that follow immediately, since these things are elgot-algebra-morphisms.</a>
|
||
<a id="2818" href="Monad.Instance.K.PreElgot.html#2818" class="Function">K₁-preserves</a> <a id="2831" class="Symbol">:</a> <a id="2833" class="Symbol">∀</a> <a id="2835" class="Symbol">{</a><a id="2836" href="Monad.Instance.K.PreElgot.html#2836" class="Bound">X</a> <a id="2838" href="Monad.Instance.K.PreElgot.html#2838" class="Bound">Y</a> <a id="2840" href="Monad.Instance.K.PreElgot.html#2840" class="Bound">Z</a> <a id="2842" class="Symbol">:</a> <a id="2844" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="2847" class="Symbol">}</a> <a id="2849" class="Symbol">(</a><a id="2850" href="Monad.Instance.K.PreElgot.html#2850" class="Bound">f</a> <a id="2852" class="Symbol">:</a> <a id="2854" href="Monad.Instance.K.PreElgot.html#2836" class="Bound">X</a> <a id="2856" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="2858" href="Monad.Instance.K.PreElgot.html#2838" class="Bound">Y</a><a id="2859" class="Symbol">)</a> <a id="2861" class="Symbol">(</a><a id="2862" href="Monad.Instance.K.PreElgot.html#2862" class="Bound">g</a> <a id="2864" class="Symbol">:</a> <a id="2866" href="Monad.Instance.K.PreElgot.html#2840" class="Bound">Z</a> <a id="2868" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="2870" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="2874" href="Monad.Instance.K.PreElgot.html#2836" class="Bound">X</a> <a id="2876" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2878" href="Monad.Instance.K.PreElgot.html#2840" class="Bound">Z</a><a id="2879" class="Symbol">)</a> <a id="2881" class="Symbol">→</a> <a id="2883" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="2887" href="Monad.Instance.K.PreElgot.html#2850" class="Bound">f</a> <a id="2889" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2891" class="Symbol">(</a><a id="2892" href="Monad.Instance.K.PreElgot.html#2862" class="Bound">g</a> <a id="2894" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a><a id="2896" class="Symbol">)</a> <a id="2898" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="2900" class="Symbol">((</a><a id="2902" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="2906" href="Monad.Instance.K.PreElgot.html#2850" class="Bound">f</a> <a id="2908" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="2911" href="Category.Ambient.html#2115" class="Function">idC</a><a id="2914" class="Symbol">)</a> <a id="2916" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="2918" href="Monad.Instance.K.PreElgot.html#2862" class="Bound">g</a><a id="2919" class="Symbol">)</a> <a id="2921" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a>
|
||
<a id="2932" href="Monad.Instance.K.PreElgot.html#2818" class="Function">K₁-preserves</a> <a id="2945" class="Symbol">{</a><a id="2946" href="Monad.Instance.K.PreElgot.html#2946" class="Bound">X</a><a id="2947" class="Symbol">}</a> <a id="2949" class="Symbol">{</a><a id="2950" href="Monad.Instance.K.PreElgot.html#2950" class="Bound">Y</a><a id="2951" class="Symbol">}</a> <a id="2953" class="Symbol">{</a><a id="2954" href="Monad.Instance.K.PreElgot.html#2954" class="Bound">Z</a><a id="2955" class="Symbol">}</a> <a id="2957" href="Monad.Instance.K.PreElgot.html#2957" class="Bound">f</a> <a id="2959" href="Monad.Instance.K.PreElgot.html#2959" class="Bound">g</a> <a id="2961" class="Symbol">=</a> <a id="2963" href="Category.Construction.ElgotAlgebras.html#812" class="Field">Elgot-Algebra-Morphism.preserves</a> <a id="2996" class="Symbol">(((</a><a id="2999" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="3012" href="Monad.Instance.K.PreElgot.html#2946" class="Bound">X</a><a id="3013" class="Symbol">)</a> <a id="3015" href="Categories.FreeObjects.Free.html#880" class="Field Operator">FreeObject.*</a><a id="3027" class="Symbol">)</a> <a id="3029" class="Symbol">{</a><a id="3030" class="Argument">A</a> <a id="3032" class="Symbol">=</a> <a id="3034" href="Monad.Instance.K.PreElgot.html#2264" class="Function">K-Alg</a> <a id="3040" href="Monad.Instance.K.PreElgot.html#2950" class="Bound">Y</a><a id="3041" class="Symbol">}</a> <a id="3043" class="Symbol">(</a><a id="3044" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="3049" class="Symbol">_</a> <a id="3051" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3053" href="Monad.Instance.K.PreElgot.html#2957" class="Bound">f</a><a id="3054" class="Symbol">))</a>
|
||
<a id="3065" href="Monad.Instance.K.PreElgot.html#3065" class="Function">μK-preserves</a> <a id="3078" class="Symbol">:</a> <a id="3080" class="Symbol">∀</a> <a id="3082" class="Symbol">{</a><a id="3083" href="Monad.Instance.K.PreElgot.html#3083" class="Bound">X</a> <a id="3085" href="Monad.Instance.K.PreElgot.html#3085" class="Bound">Y</a> <a id="3087" class="Symbol">:</a> <a id="3089" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="3092" class="Symbol">}</a> <a id="3094" class="Symbol">(</a><a id="3095" href="Monad.Instance.K.PreElgot.html#3095" class="Bound">g</a> <a id="3097" class="Symbol">:</a> <a id="3099" href="Monad.Instance.K.PreElgot.html#3085" class="Bound">Y</a> <a id="3101" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="3103" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="3107" class="Symbol">(</a><a id="3108" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="3112" href="Monad.Instance.K.PreElgot.html#3083" class="Bound">X</a><a id="3113" class="Symbol">)</a> <a id="3115" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="3117" href="Monad.Instance.K.PreElgot.html#3085" class="Bound">Y</a><a id="3118" class="Symbol">)</a> <a id="3120" class="Symbol">→</a> <a id="3122" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="3127" href="Monad.Instance.K.PreElgot.html#3083" class="Bound">X</a> <a id="3129" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3131" href="Monad.Instance.K.PreElgot.html#3095" class="Bound">g</a> <a id="3133" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a> <a id="3136" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="3138" class="Symbol">((</a><a id="3140" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="3145" href="Monad.Instance.K.PreElgot.html#3083" class="Bound">X</a> <a id="3147" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="3150" href="Category.Ambient.html#2115" class="Function">idC</a><a id="3153" class="Symbol">)</a> <a id="3155" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3157" href="Monad.Instance.K.PreElgot.html#3095" class="Bound">g</a><a id="3158" class="Symbol">)</a> <a id="3160" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a>
|
||
<a id="3171" href="Monad.Instance.K.PreElgot.html#3065" class="Function">μK-preserves</a> <a id="3184" class="Symbol">{</a><a id="3185" href="Monad.Instance.K.PreElgot.html#3185" class="Bound">X</a><a id="3186" class="Symbol">}</a> <a id="3188" href="Monad.Instance.K.PreElgot.html#3188" class="Bound">g</a> <a id="3190" class="Symbol">=</a> <a id="3192" href="Category.Construction.ElgotAlgebras.html#812" class="Field">Elgot-Algebra-Morphism.preserves</a> <a id="3225" class="Symbol">(((</a><a id="3228" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="3241" class="Symbol">(</a><a id="3242" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="3246" href="Monad.Instance.K.PreElgot.html#3185" class="Bound">X</a><a id="3247" class="Symbol">))</a> <a id="3250" href="Categories.FreeObjects.Free.html#880" class="Field Operator">FreeObject.*</a><a id="3262" class="Symbol">)</a> <a id="3264" class="Symbol">{</a><a id="3265" class="Argument">A</a> <a id="3267" class="Symbol">=</a> <a id="3269" href="Monad.Instance.K.PreElgot.html#2264" class="Function">K-Alg</a> <a id="3275" href="Monad.Instance.K.PreElgot.html#3185" class="Bound">X</a><a id="3276" class="Symbol">}</a> <a id="3278" href="Category.Ambient.html#2115" class="Function">idC</a><a id="3281" class="Symbol">)</a>
|
||
<a id="3291" href="Monad.Instance.K.PreElgot.html#3291" class="Function">η'-preserves</a> <a id="3304" class="Symbol">:</a> <a id="3306" class="Symbol">∀</a> <a id="3308" class="Symbol">{</a><a id="3309" href="Monad.Instance.K.PreElgot.html#3309" class="Bound">X</a> <a id="3311" href="Monad.Instance.K.PreElgot.html#3311" class="Bound">Y</a> <a id="3313" class="Symbol">:</a> <a id="3315" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="3318" class="Symbol">}</a> <a id="3320" class="Symbol">(</a><a id="3321" href="Monad.Instance.K.PreElgot.html#3321" class="Bound">g</a> <a id="3323" class="Symbol">:</a> <a id="3325" href="Monad.Instance.K.PreElgot.html#3311" class="Bound">Y</a> <a id="3327" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="3329" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="3333" href="Monad.Instance.K.PreElgot.html#3309" class="Bound">X</a> <a id="3335" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="3337" href="Monad.Instance.K.PreElgot.html#3311" class="Bound">Y</a><a id="3338" class="Symbol">)</a> <a id="3340" class="Symbol">→</a> <a id="3342" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="3345" href="Monad.Instance.K.PreElgot.html#3309" class="Bound">X</a> <a id="3347" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3349" href="Monad.Instance.K.PreElgot.html#3321" class="Bound">g</a> <a id="3351" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a> <a id="3354" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="3356" class="Symbol">((</a><a id="3358" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="3361" href="Monad.Instance.K.PreElgot.html#3309" class="Bound">X</a> <a id="3363" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="3366" href="Category.Ambient.html#2115" class="Function">idC</a><a id="3369" class="Symbol">)</a> <a id="3371" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3373" href="Monad.Instance.K.PreElgot.html#3321" class="Bound">g</a><a id="3374" class="Symbol">)</a> <a id="3376" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a>
|
||
<a id="3387" href="Monad.Instance.K.PreElgot.html#3291" class="Function">η'-preserves</a> <a id="3400" class="Symbol">{</a><a id="3401" href="Monad.Instance.K.PreElgot.html#3401" class="Bound">X</a><a id="3402" class="Symbol">}</a> <a id="3404" href="Monad.Instance.K.PreElgot.html#3404" class="Bound">g</a> <a id="3406" class="Symbol">=</a> <a id="3408" href="Category.Construction.ElgotAlgebras.html#812" class="Field">Elgot-Algebra-Morphism.preserves</a> <a id="3441" class="Symbol">(((</a><a id="3444" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="3457" href="Monad.Instance.K.PreElgot.html#3401" class="Bound">X</a><a id="3458" class="Symbol">)</a> <a id="3460" href="Categories.FreeObjects.Free.html#880" class="Field Operator">FreeObject.*</a><a id="3472" class="Symbol">)</a> <a id="3474" class="Symbol">{</a><a id="3475" class="Argument">A</a> <a id="3477" class="Symbol">=</a> <a id="3479" href="Monad.Instance.K.PreElgot.html#2137" class="Function">T-Alg</a> <a id="3485" href="Monad.Instance.K.PreElgot.html#3401" class="Bound">X</a><a id="3486" class="Symbol">}</a> <a id="3488" class="Symbol">(</a><a id="3489" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="3495" href="Monad.Instance.K.PreElgot.html#3401" class="Bound">X</a><a id="3496" class="Symbol">))</a>
|
||
<a id="3507" href="Monad.Instance.K.PreElgot.html#3507" class="Function">commute</a> <a id="3515" class="Symbol">:</a> <a id="3517" class="Symbol">∀</a> <a id="3519" class="Symbol">{</a><a id="3520" href="Monad.Instance.K.PreElgot.html#3520" class="Bound">X</a> <a id="3522" href="Monad.Instance.K.PreElgot.html#3522" class="Bound">Y</a> <a id="3524" class="Symbol">:</a> <a id="3526" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="3529" class="Symbol">}</a> <a id="3531" class="Symbol">(</a><a id="3532" href="Monad.Instance.K.PreElgot.html#3532" class="Bound">f</a> <a id="3534" class="Symbol">:</a> <a id="3536" href="Monad.Instance.K.PreElgot.html#3520" class="Bound">X</a> <a id="3538" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="3540" href="Monad.Instance.K.PreElgot.html#3522" class="Bound">Y</a><a id="3541" class="Symbol">)</a> <a id="3543" class="Symbol">→</a> <a id="3545" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="3548" href="Monad.Instance.K.PreElgot.html#3522" class="Bound">Y</a> <a id="3550" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3552" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="3556" href="Monad.Instance.K.PreElgot.html#3532" class="Bound">f</a> <a id="3558" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="3560" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="3566" href="Monad.Instance.K.PreElgot.html#3532" class="Bound">f</a> <a id="3568" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3570" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="3573" href="Monad.Instance.K.PreElgot.html#3520" class="Bound">X</a>
|
||
<a id="3583" href="Monad.Instance.K.PreElgot.html#3507" class="Function">commute</a> <a id="3591" class="Symbol">{</a><a id="3592" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a><a id="3593" class="Symbol">}</a> <a id="3595" class="Symbol">{</a><a id="3596" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a><a id="3597" class="Symbol">}</a> <a id="3599" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="3601" class="Symbol">=</a> <a id="3603" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
||
<a id="3619" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="3622" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="3624" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3626" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="3630" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="3683" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3686" href="Categories.FreeObjects.Free.html#1017" class="Field">FreeObject.*-uniq</a>
|
||
<a id="3784" class="Symbol">(</a><a id="3785" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="3798" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a><a id="3799" class="Symbol">)</a>
|
||
<a id="3881" class="Symbol">{</a><a id="3882" class="Argument">A</a> <a id="3884" class="Symbol">=</a> <a id="3886" href="Monad.Instance.K.PreElgot.html#2137" class="Function">T-Alg</a> <a id="3892" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a><a id="3893" class="Symbol">}</a>
|
||
<a id="3976" class="Symbol">(</a><a id="3977" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="3983" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="3985" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="3987" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="3993" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a><a id="3994" class="Symbol">)</a>
|
||
<a id="4077" class="Symbol">(</a><a id="4078" class="Keyword">record</a> <a id="4085" class="Symbol">{</a> <a id="4087" href="Category.Construction.ElgotAlgebras.html#794" class="Field">h</a> <a id="4089" class="Symbol">=</a> <a id="4091" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="4094" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="4096" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4098" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="4102" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="4104" class="Symbol">;</a> <a id="4106" href="Category.Construction.ElgotAlgebras.html#812" class="Field">preserves</a> <a id="4116" class="Symbol">=</a> <a id="4118" href="Monad.Instance.K.PreElgot.html#5023" class="Function">pres₁</a> <a id="4124" class="Symbol">})</a>
|
||
<a id="4208" href="Monad.Instance.K.PreElgot.html#6291" class="Function">comm₁</a> <a id="4214" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="4226" href="Category.Construction.ElgotAlgebras.html#794" class="Field">Elgot-Algebra-Morphism.h</a> <a id="4251" class="Symbol">(</a><a id="4252" href="Categories.FreeObjects.Free.html#880" class="Field Operator">FreeObject._*</a> <a id="4266" class="Symbol">(</a><a id="4267" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="4280" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a><a id="4281" class="Symbol">)</a> <a id="4283" class="Symbol">{</a><a id="4284" class="Argument">A</a> <a id="4286" class="Symbol">=</a> <a id="4288" href="Monad.Instance.K.PreElgot.html#2137" class="Function">T-Alg</a> <a id="4294" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a><a id="4295" class="Symbol">}</a> <a id="4297" class="Symbol">(</a><a id="4298" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="4304" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="4306" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4308" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="4314" class="Symbol">_))</a> <a id="4318" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4321" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="4325" class="Symbol">(</a><a id="4326" href="Categories.FreeObjects.Free.html#1017" class="Field">FreeObject.*-uniq</a>
|
||
<a id="4427" class="Symbol">(</a><a id="4428" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="4441" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a><a id="4442" class="Symbol">)</a>
|
||
<a id="4526" class="Symbol">{</a><a id="4527" class="Argument">A</a> <a id="4529" class="Symbol">=</a> <a id="4531" href="Monad.Instance.K.PreElgot.html#2137" class="Function">T-Alg</a> <a id="4537" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a><a id="4538" class="Symbol">}</a>
|
||
<a id="4623" class="Symbol">(</a><a id="4624" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="4630" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="4632" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4634" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="4640" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a><a id="4641" class="Symbol">)</a>
|
||
<a id="4726" class="Symbol">(</a><a id="4727" class="Keyword">record</a> <a id="4734" class="Symbol">{</a> <a id="4736" href="Category.Construction.ElgotAlgebras.html#794" class="Field">h</a> <a id="4738" class="Symbol">=</a> <a id="4740" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="4746" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="4748" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4750" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="4753" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a> <a id="4755" class="Symbol">;</a> <a id="4757" href="Category.Construction.ElgotAlgebras.html#812" class="Field">preserves</a> <a id="4767" class="Symbol">=</a> <a id="4769" href="Monad.Instance.K.PreElgot.html#5543" class="Function">pres₂</a> <a id="4775" class="Symbol">})</a>
|
||
<a id="4861" class="Symbol">(</a><a id="4862" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="4868" class="Symbol">(</a><a id="4869" href="Categories.FreeObjects.Free.html#937" class="Field">FreeObject.*-lift</a> <a id="4887" class="Symbol">(</a><a id="4888" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="4901" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a><a id="4902" class="Symbol">)</a> <a id="4904" class="Symbol">(</a><a id="4905" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="4911" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a><a id="4912" class="Symbol">))))</a> <a id="4917" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="4929" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="4935" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="4937" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4939" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="4942" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a> <a id="4993" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
||
<a id="5005" class="Keyword">where</a>
|
||
<a id="5023" href="Monad.Instance.K.PreElgot.html#5023" class="Function">pres₁</a> <a id="5029" class="Symbol">:</a> <a id="5031" class="Symbol">∀</a> <a id="5033" class="Symbol">{</a><a id="5034" href="Monad.Instance.K.PreElgot.html#5034" class="Bound">Z</a><a id="5035" class="Symbol">}</a> <a id="5037" class="Symbol">{</a><a id="5038" href="Monad.Instance.K.PreElgot.html#5038" class="Bound">g</a> <a id="5040" class="Symbol">:</a> <a id="5042" href="Monad.Instance.K.PreElgot.html#5034" class="Bound">Z</a> <a id="5044" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="5046" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="5050" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a> <a id="5052" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="5054" href="Monad.Instance.K.PreElgot.html#5034" class="Bound">Z</a><a id="5055" class="Symbol">}</a> <a id="5057" class="Symbol">→</a> <a id="5059" class="Symbol">(</a><a id="5060" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="5063" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="5065" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5067" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5071" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a><a id="5072" class="Symbol">)</a> <a id="5074" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5076" href="Monad.Instance.K.PreElgot.html#5038" class="Bound">g</a> <a id="5078" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a> <a id="5081" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="5083" class="Symbol">((</a><a id="5085" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="5088" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="5090" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5092" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5096" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="5098" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5101" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5104" class="Symbol">)</a> <a id="5106" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5108" href="Monad.Instance.K.PreElgot.html#5038" class="Bound">g</a><a id="5109" class="Symbol">)</a> <a id="5111" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a>
|
||
<a id="5126" href="Monad.Instance.K.PreElgot.html#5023" class="Function">pres₁</a> <a id="5132" class="Symbol">{</a><a id="5133" href="Monad.Instance.K.PreElgot.html#5133" class="Bound">Z</a><a id="5134" class="Symbol">}</a> <a id="5136" class="Symbol">{</a><a id="5137" href="Monad.Instance.K.PreElgot.html#5137" class="Bound">g</a><a id="5138" class="Symbol">}</a> <a id="5140" class="Symbol">=</a> <a id="5142" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
||
<a id="5162" class="Symbol">(</a><a id="5163" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="5166" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="5168" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5170" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5174" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a><a id="5175" class="Symbol">)</a> <a id="5177" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5179" class="Symbol">(</a><a id="5180" href="Monad.Instance.K.PreElgot.html#5137" class="Bound">g</a> <a id="5182" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a><a id="5184" class="Symbol">)</a> <a id="5204" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5207" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="5213" class="Symbol">(</a><a id="5214" href="Monad.Instance.K.PreElgot.html#2818" class="Function">K₁-preserves</a> <a id="5227" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="5229" href="Monad.Instance.K.PreElgot.html#5137" class="Bound">g</a><a id="5230" class="Symbol">)</a> <a id="5232" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="5248" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="5251" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="5253" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5255" class="Symbol">(((</a><a id="5258" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5262" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="5264" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5267" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5270" class="Symbol">)</a> <a id="5272" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5274" href="Monad.Instance.K.PreElgot.html#5137" class="Bound">g</a><a id="5275" class="Symbol">)</a> <a id="5277" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a><a id="5279" class="Symbol">)</a> <a id="5290" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5293" href="Monad.Instance.K.PreElgot.html#3291" class="Function">η'-preserves</a> <a id="5306" class="Symbol">((</a><a id="5308" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5312" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="5314" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5317" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5320" class="Symbol">)</a> <a id="5322" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5324" href="Monad.Instance.K.PreElgot.html#5137" class="Bound">g</a><a id="5325" class="Symbol">)</a> <a id="5327" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="5343" class="Symbol">(((</a><a id="5346" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="5349" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="5351" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5354" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5357" class="Symbol">)</a> <a id="5359" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5361" class="Symbol">(</a><a id="5362" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5366" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="5368" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5371" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5374" class="Symbol">)</a> <a id="5376" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5378" href="Monad.Instance.K.PreElgot.html#5137" class="Bound">g</a><a id="5379" class="Symbol">)</a> <a id="5381" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a><a id="5383" class="Symbol">)</a> <a id="5385" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5388" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="5397" class="Symbol">(</a><a id="5398" href="Monad.PreElgot.html#815" class="Function">PreElgotMonad.elgotalgebras</a> <a id="5426" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a><a id="5427" class="Symbol">)</a> <a id="5429" class="Symbol">(</a><a id="5430" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="5436" class="Symbol">(</a><a id="5437" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="5443" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="5445" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="5454" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="5459" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="5468" class="Symbol">))</a> <a id="5471" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="5487" class="Symbol">((</a><a id="5489" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="5492" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="5494" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5496" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="5500" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="5502" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5505" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5508" class="Symbol">)</a> <a id="5510" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5512" href="Monad.Instance.K.PreElgot.html#5137" class="Bound">g</a><a id="5513" class="Symbol">)</a> <a id="5515" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a> <a id="5529" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
||
<a id="5543" href="Monad.Instance.K.PreElgot.html#5543" class="Function">pres₂</a> <a id="5549" class="Symbol">:</a> <a id="5551" class="Symbol">∀</a> <a id="5553" class="Symbol">{</a><a id="5554" href="Monad.Instance.K.PreElgot.html#5554" class="Bound">Z</a><a id="5555" class="Symbol">}</a> <a id="5557" class="Symbol">{</a><a id="5558" href="Monad.Instance.K.PreElgot.html#5558" class="Bound">g</a> <a id="5560" class="Symbol">:</a> <a id="5562" href="Monad.Instance.K.PreElgot.html#5554" class="Bound">Z</a> <a id="5564" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="5566" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="5570" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a> <a id="5572" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="5574" href="Monad.Instance.K.PreElgot.html#5554" class="Bound">Z</a><a id="5575" class="Symbol">}</a> <a id="5577" class="Symbol">→</a> <a id="5579" class="Symbol">(</a><a id="5580" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="5586" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="5588" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5590" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="5593" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a><a id="5594" class="Symbol">)</a> <a id="5596" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5598" href="Monad.Instance.K.PreElgot.html#5558" class="Bound">g</a> <a id="5600" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a> <a id="5603" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="5605" class="Symbol">((</a><a id="5607" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="5613" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="5615" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5617" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="5620" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a> <a id="5622" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5625" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5628" class="Symbol">)</a> <a id="5630" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5632" href="Monad.Instance.K.PreElgot.html#5558" class="Bound">g</a><a id="5633" class="Symbol">)</a> <a id="5635" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a>
|
||
<a id="5650" href="Monad.Instance.K.PreElgot.html#5543" class="Function">pres₂</a> <a id="5656" class="Symbol">{</a><a id="5657" href="Monad.Instance.K.PreElgot.html#5657" class="Bound">Z</a><a id="5658" class="Symbol">}</a> <a id="5660" class="Symbol">{</a><a id="5661" href="Monad.Instance.K.PreElgot.html#5661" class="Bound">g</a><a id="5662" class="Symbol">}</a> <a id="5664" class="Symbol">=</a> <a id="5666" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
||
<a id="5686" class="Symbol">(</a><a id="5687" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="5693" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="5695" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5697" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="5700" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a><a id="5701" class="Symbol">)</a> <a id="5703" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5705" href="Monad.Instance.K.PreElgot.html#5661" class="Bound">g</a> <a id="5707" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a> <a id="5743" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5746" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="5752" class="Symbol">(</a><a id="5753" href="Monad.Instance.K.PreElgot.html#3291" class="Function">η'-preserves</a> <a id="5766" href="Monad.Instance.K.PreElgot.html#5661" class="Bound">g</a><a id="5767" class="Symbol">)</a> <a id="5769" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="5785" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="5791" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="5793" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5795" class="Symbol">((</a><a id="5797" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="5800" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a> <a id="5802" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5805" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5808" class="Symbol">)</a> <a id="5810" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5812" href="Monad.Instance.K.PreElgot.html#5661" class="Bound">g</a><a id="5813" class="Symbol">)</a> <a id="5815" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a> <a id="5842" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5845" class="Symbol">(</a><a id="5846" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="5850" class="Symbol">(</a><a id="5851" href="Category.Ambient.html#10091" class="Function">F₁⇒extend</a> <a id="5861" href="Monad.PreElgot.html#1214" class="Field">T</a> <a id="5863" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a><a id="5864" class="Symbol">))</a> <a id="5867" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="5875" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="5891" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="5898" class="Symbol">(</a><a id="5899" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="5905" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="5907" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5909" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a><a id="5910" class="Symbol">)</a> <a id="5912" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5914" class="Symbol">((</a><a id="5916" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="5919" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a> <a id="5921" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5924" href="Category.Ambient.html#2115" class="Function">idC</a><a id="5927" class="Symbol">)</a> <a id="5929" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5931" href="Monad.Instance.K.PreElgot.html#5661" class="Bound">g</a><a id="5932" class="Symbol">)</a> <a id="5934" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a> <a id="5948" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5951" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="5955" class="Symbol">(</a><a id="5956" href="Monad.PreElgot.html#998" class="Function">PreElgotMonad.extend-preserves</a> <a id="5987" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a> <a id="5989" class="Symbol">((</a><a id="5991" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="5994" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a> <a id="5996" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="5999" href="Category.Ambient.html#2115" class="Function">idC</a><a id="6002" class="Symbol">)</a> <a id="6004" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6006" href="Monad.Instance.K.PreElgot.html#5661" class="Bound">g</a><a id="6007" class="Symbol">)</a> <a id="6009" class="Symbol">(</a><a id="6010" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="6016" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="6018" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6020" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a><a id="6021" class="Symbol">))</a> <a id="6024" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="6040" class="Symbol">(((</a><a id="6043" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="6050" class="Symbol">(</a><a id="6051" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="6057" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="6059" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6061" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a><a id="6062" class="Symbol">)</a> <a id="6064" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6067" href="Category.Ambient.html#2115" class="Function">idC</a><a id="6070" class="Symbol">)</a> <a id="6072" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6074" class="Symbol">(</a><a id="6075" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="6078" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a> <a id="6080" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6083" href="Category.Ambient.html#2115" class="Function">idC</a><a id="6086" class="Symbol">)</a> <a id="6088" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6090" href="Monad.Instance.K.PreElgot.html#5661" class="Bound">g</a><a id="6091" class="Symbol">)</a> <a id="6093" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a><a id="6095" class="Symbol">)</a> <a id="6097" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6100" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="6109" class="Symbol">(</a><a id="6110" href="Monad.PreElgot.html#815" class="Function">PreElgotMonad.elgotalgebras</a> <a id="6138" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a><a id="6139" class="Symbol">)</a> <a id="6141" class="Symbol">(</a><a id="6142" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6148" class="Symbol">(</a><a id="6149" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="6155" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="6157" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="6166" class="Symbol">((</a><a id="6168" href="Category.Ambient.html#10091" class="Function">F₁⇒extend</a> <a id="6178" href="Monad.PreElgot.html#1214" class="Field">T</a> <a id="6180" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a><a id="6181" class="Symbol">)</a> <a id="6183" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="6190" class="Symbol">)</a> <a id="6192" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="6201" class="Symbol">))</a> <a id="6204" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="6220" class="Symbol">((</a><a id="6222" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="6228" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="6230" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6232" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="6235" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a> <a id="6237" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="6240" href="Category.Ambient.html#2115" class="Function">idC</a><a id="6243" class="Symbol">)</a> <a id="6245" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6247" href="Monad.Instance.K.PreElgot.html#5661" class="Bound">g</a><a id="6248" class="Symbol">)</a> <a id="6250" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a> <a id="6277" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
||
<a id="6291" href="Monad.Instance.K.PreElgot.html#6291" class="Function">comm₁</a> <a id="6297" class="Symbol">:</a> <a id="6299" class="Symbol">(</a><a id="6300" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="6303" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="6305" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6307" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="6311" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a><a id="6312" class="Symbol">)</a> <a id="6314" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6316" class="Symbol">_</a> <a id="6318" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="6320" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="6326" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="6328" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6330" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="6336" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a>
|
||
<a id="6350" href="Monad.Instance.K.PreElgot.html#6291" class="Function">comm₁</a> <a id="6356" class="Symbol">=</a> <a id="6358" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
||
<a id="6378" class="Symbol">(</a><a id="6379" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="6382" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="6384" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6386" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="6390" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a><a id="6391" class="Symbol">)</a> <a id="6393" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6395" class="Symbol">_</a> <a id="6397" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6400" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="6406" class="Symbol">(</a><a id="6407" href="Monad.Instance.K.Strong.html#5746" class="Function">K₁η</a> <a id="6411" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a><a id="6412" class="Symbol">)</a> <a id="6414" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="6430" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="6433" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="6435" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6437" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="6442" class="Symbol">_</a> <a id="6444" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6446" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="6449" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6452" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6458" class="Symbol">(</a><a id="6459" href="Categories.FreeObjects.Free.html#937" class="Field">FreeObject.*-lift</a> <a id="6477" class="Symbol">(</a><a id="6478" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="6491" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a><a id="6492" class="Symbol">)</a> <a id="6494" class="Symbol">(</a><a id="6495" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="6501" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a><a id="6502" class="Symbol">))</a> <a id="6505" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="6521" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="6527" href="Monad.Instance.K.PreElgot.html#3596" class="Bound">Y</a> <a id="6529" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6531" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="6540" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6543" href="Categories.NaturalTransformation.Core.html#827" class="Field">NaturalTransformation.commute</a> <a id="6573" href="Categories.Monad.html#547" class="Function">T.η</a> <a id="6577" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="6579" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="6595" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="6601" href="Monad.Instance.K.PreElgot.html#3599" class="Bound">f</a> <a id="6603" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6605" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="6611" href="Monad.Instance.K.PreElgot.html#3592" class="Bound">X</a> <a id="6614" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
||
<a id="6624" href="Monad.Instance.K.PreElgot.html#6624" class="Function">α-μ</a> <a id="6628" class="Symbol">:</a> <a id="6630" class="Symbol">∀</a> <a id="6632" class="Symbol">{</a><a id="6633" href="Monad.Instance.K.PreElgot.html#6633" class="Bound">X</a> <a id="6635" class="Symbol">:</a> <a id="6637" href="Categories.Category.Core.html#559" class="Function">Obj</a><a id="6640" class="Symbol">}</a> <a id="6642" class="Symbol">→</a> <a id="6644" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="6647" href="Monad.Instance.K.PreElgot.html#6633" class="Bound">X</a> <a id="6649" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6651" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="6656" href="Monad.Instance.K.PreElgot.html#6633" class="Bound">X</a> <a id="6658" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="6660" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="6666" href="Monad.Instance.K.PreElgot.html#6633" class="Bound">X</a> <a id="6668" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6670" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="6676" class="Symbol">(</a><a id="6677" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="6680" href="Monad.Instance.K.PreElgot.html#6633" class="Bound">X</a><a id="6681" class="Symbol">)</a> <a id="6683" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6685" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="6688" class="Symbol">(</a><a id="6689" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="6693" href="Monad.Instance.K.PreElgot.html#6633" class="Bound">X</a><a id="6694" class="Symbol">)</a>
|
||
<a id="6704" href="Monad.Instance.K.PreElgot.html#6624" class="Function">α-μ</a> <a id="6708" class="Symbol">{</a><a id="6709" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="6710" class="Symbol">}</a> <a id="6712" class="Symbol">=</a> <a id="6714" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
||
<a id="6730" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="6733" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="6735" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="6737" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="6742" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="6813" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6816" href="Categories.FreeObjects.Free.html#1017" class="Field">FreeObject.*-uniq</a>
|
||
<a id="6863" class="Symbol">(</a><a id="6864" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="6877" class="Symbol">(</a><a id="6878" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="6882" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="6883" class="Symbol">))</a>
|
||
<a id="6915" class="Symbol">{</a><a id="6916" class="Argument">A</a> <a id="6918" class="Symbol">=</a> <a id="6920" href="Monad.Instance.K.PreElgot.html#2137" class="Function">T-Alg</a> <a id="6926" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="6927" class="Symbol">}</a>
|
||
<a id="6958" class="Symbol">(</a><a id="6959" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="6962" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="6963" class="Symbol">)</a>
|
||
<a id="6994" class="Symbol">(</a><a id="6995" class="Keyword">record</a> <a id="7002" class="Symbol">{</a> <a id="7004" href="Category.Construction.ElgotAlgebras.html#794" class="Field">h</a> <a id="7006" class="Symbol">=</a> <a id="7008" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="7011" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="7013" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7015" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="7020" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="7022" class="Symbol">;</a> <a id="7024" href="Category.Construction.ElgotAlgebras.html#812" class="Field">preserves</a> <a id="7034" class="Symbol">=</a> <a id="7036" href="Monad.Instance.K.PreElgot.html#7988" class="Function">pres₁</a> <a id="7042" class="Symbol">})</a>
|
||
<a id="7074" class="Symbol">(</a><a id="7075" href="Categories.Morphism.Reasoning.Core.html#6665" class="Function">cancelʳ</a> <a id="7083" href="Categories.Monad.html#953" class="Function">monadK.identityʳ</a><a id="7099" class="Symbol">)</a> <a id="7101" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="7113" href="Category.Construction.ElgotAlgebras.html#794" class="Field">Elgot-Algebra-Morphism.h</a> <a id="7138" class="Symbol">(((</a><a id="7141" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="7154" class="Symbol">(</a><a id="7155" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="7159" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="7160" class="Symbol">))</a> <a id="7163" href="Categories.FreeObjects.Free.html#880" class="Field Operator">FreeObject.*</a><a id="7175" class="Symbol">)</a> <a id="7177" class="Symbol">{</a><a id="7178" class="Argument">A</a> <a id="7180" class="Symbol">=</a> <a id="7182" href="Monad.Instance.K.PreElgot.html#2137" class="Function">T-Alg</a> <a id="7188" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="7189" class="Symbol">}</a> <a id="7191" class="Symbol">(</a><a id="7192" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="7195" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="7196" class="Symbol">))</a> <a id="7199" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7202" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="7206" class="Symbol">(</a><a id="7207" href="Categories.FreeObjects.Free.html#1017" class="Field">FreeObject.*-uniq</a>
|
||
<a id="7328" class="Symbol">(</a><a id="7329" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="7342" class="Symbol">(</a><a id="7343" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="7347" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="7348" class="Symbol">))</a>
|
||
<a id="7454" class="Symbol">{</a><a id="7455" class="Argument">A</a> <a id="7457" class="Symbol">=</a> <a id="7459" href="Monad.Instance.K.PreElgot.html#2137" class="Function">T-Alg</a> <a id="7465" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="7466" class="Symbol">}</a>
|
||
<a id="7571" class="Symbol">(</a><a id="7572" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="7575" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="7576" class="Symbol">)</a>
|
||
<a id="7681" class="Symbol">(</a><a id="7682" class="Keyword">record</a> <a id="7689" class="Symbol">{</a> <a id="7691" href="Category.Construction.ElgotAlgebras.html#794" class="Field">h</a> <a id="7693" class="Symbol">=</a> <a id="7695" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="7701" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="7703" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7705" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="7711" class="Symbol">(</a><a id="7712" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="7715" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="7716" class="Symbol">)</a> <a id="7718" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7720" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="7723" class="Symbol">(</a><a id="7724" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="7728" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="7729" class="Symbol">)</a> <a id="7731" class="Symbol">;</a> <a id="7733" href="Category.Construction.ElgotAlgebras.html#812" class="Field">preserves</a> <a id="7743" class="Symbol">=</a> <a id="7745" href="Monad.Instance.K.PreElgot.html#8519" class="Function">pres₂</a> <a id="7751" class="Symbol">})</a>
|
||
<a id="7857" href="Monad.Instance.K.PreElgot.html#9953" class="Function">comm</a><a id="7861" class="Symbol">)</a> <a id="7863" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="7875" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="7881" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="7883" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7885" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="7891" class="Symbol">(</a><a id="7892" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="7895" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="7896" class="Symbol">)</a> <a id="7898" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="7900" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="7903" class="Symbol">(</a><a id="7904" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="7908" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="7909" class="Symbol">)</a> <a id="7958" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
||
<a id="7970" class="Keyword">where</a>
|
||
<a id="7988" href="Monad.Instance.K.PreElgot.html#7988" class="Function">pres₁</a> <a id="7994" class="Symbol">:</a> <a id="7996" class="Symbol">∀</a> <a id="7998" class="Symbol">{</a><a id="7999" href="Monad.Instance.K.PreElgot.html#7999" class="Bound">Z</a><a id="8000" class="Symbol">}</a> <a id="8002" class="Symbol">{</a><a id="8003" href="Monad.Instance.K.PreElgot.html#8003" class="Bound">g</a> <a id="8005" class="Symbol">:</a> <a id="8007" href="Monad.Instance.K.PreElgot.html#7999" class="Bound">Z</a> <a id="8009" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="8011" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="8015" class="Symbol">(</a><a id="8016" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="8020" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8021" class="Symbol">)</a> <a id="8023" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="8025" href="Monad.Instance.K.PreElgot.html#7999" class="Bound">Z</a><a id="8026" class="Symbol">}</a> <a id="8028" class="Symbol">→</a> <a id="8030" class="Symbol">(</a><a id="8031" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8034" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8036" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8038" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8043" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8044" class="Symbol">)</a> <a id="8046" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8048" href="Monad.Instance.K.PreElgot.html#8003" class="Bound">g</a> <a id="8050" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a> <a id="8053" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="8055" class="Symbol">((</a><a id="8057" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8060" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8062" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8064" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8069" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8071" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8074" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8077" class="Symbol">)</a> <a id="8079" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8081" href="Monad.Instance.K.PreElgot.html#8003" class="Bound">g</a><a id="8082" class="Symbol">)</a> <a id="8084" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a>
|
||
<a id="8099" href="Monad.Instance.K.PreElgot.html#7988" class="Function">pres₁</a> <a id="8105" class="Symbol">{</a><a id="8106" href="Monad.Instance.K.PreElgot.html#8106" class="Bound">Z</a><a id="8107" class="Symbol">}</a> <a id="8109" class="Symbol">{</a><a id="8110" href="Monad.Instance.K.PreElgot.html#8110" class="Bound">g</a><a id="8111" class="Symbol">}</a> <a id="8113" class="Symbol">=</a> <a id="8115" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
||
<a id="8135" class="Symbol">(</a><a id="8136" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8139" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8141" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8143" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8148" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8149" class="Symbol">)</a> <a id="8151" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8153" class="Symbol">(</a><a id="8154" href="Monad.Instance.K.PreElgot.html#8110" class="Bound">g</a> <a id="8156" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a><a id="8158" class="Symbol">)</a> <a id="8178" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8181" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="8187" class="Symbol">(</a><a id="8188" href="Monad.Instance.K.PreElgot.html#3065" class="Function">μK-preserves</a> <a id="8201" href="Monad.Instance.K.PreElgot.html#8110" class="Bound">g</a><a id="8202" class="Symbol">)</a> <a id="8204" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="8220" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8223" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8225" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8227" class="Symbol">((</a><a id="8229" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8234" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8236" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8239" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8242" class="Symbol">)</a> <a id="8244" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8246" href="Monad.Instance.K.PreElgot.html#8110" class="Bound">g</a><a id="8247" class="Symbol">)</a> <a id="8249" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a> <a id="8263" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8266" href="Monad.Instance.K.PreElgot.html#3291" class="Function">η'-preserves</a> <a id="8279" class="Symbol">((</a><a id="8281" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8286" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8288" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8291" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8294" class="Symbol">)</a> <a id="8296" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8298" href="Monad.Instance.K.PreElgot.html#8110" class="Bound">g</a><a id="8299" class="Symbol">)</a> <a id="8301" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="8317" class="Symbol">(((</a><a id="8320" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8323" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8325" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8328" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8331" class="Symbol">)</a> <a id="8333" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8335" class="Symbol">(</a><a id="8336" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8341" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8343" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8346" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8349" class="Symbol">)</a> <a id="8351" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8353" href="Monad.Instance.K.PreElgot.html#8110" class="Bound">g</a><a id="8354" class="Symbol">)</a> <a id="8356" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a><a id="8358" class="Symbol">)</a> <a id="8360" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8363" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="8372" class="Symbol">(</a><a id="8373" href="Monad.PreElgot.html#815" class="Function">PreElgotMonad.elgotalgebras</a> <a id="8401" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a><a id="8402" class="Symbol">)</a> <a id="8404" class="Symbol">(</a><a id="8405" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="8411" class="Symbol">(</a><a id="8412" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="8418" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="8420" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="8429" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="8434" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="8443" class="Symbol">))</a> <a id="8446" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="8462" class="Symbol">(((</a><a id="8465" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8468" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8470" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8472" href="Categories.NaturalTransformation.Core.html#783" class="Function">μK.η</a> <a id="8477" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8479" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8482" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8485" class="Symbol">)</a> <a id="8487" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8489" href="Monad.Instance.K.PreElgot.html#8110" class="Bound">g</a><a id="8490" class="Symbol">)</a> <a id="8492" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a><a id="8494" class="Symbol">)</a> <a id="8505" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
||
<a id="8519" href="Monad.Instance.K.PreElgot.html#8519" class="Function">pres₂</a> <a id="8525" class="Symbol">:</a> <a id="8527" class="Symbol">∀</a> <a id="8529" class="Symbol">{</a><a id="8530" href="Monad.Instance.K.PreElgot.html#8530" class="Bound">Z</a><a id="8531" class="Symbol">}</a> <a id="8533" class="Symbol">{</a><a id="8534" href="Monad.Instance.K.PreElgot.html#8534" class="Bound">g</a> <a id="8536" class="Symbol">:</a> <a id="8538" href="Monad.Instance.K.PreElgot.html#8530" class="Bound">Z</a> <a id="8540" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="8542" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="8546" class="Symbol">(</a><a id="8547" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="8551" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8552" class="Symbol">)</a> <a id="8554" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="8556" href="Monad.Instance.K.PreElgot.html#8530" class="Bound">Z</a><a id="8557" class="Symbol">}</a> <a id="8559" class="Symbol">→</a> <a id="8561" class="Symbol">(</a><a id="8562" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="8568" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8570" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8572" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="8578" class="Symbol">(</a><a id="8579" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8582" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8583" class="Symbol">)</a> <a id="8585" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8587" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8590" class="Symbol">(</a><a id="8591" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="8595" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8596" class="Symbol">))</a> <a id="8599" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8601" href="Monad.Instance.K.PreElgot.html#8534" class="Bound">g</a> <a id="8603" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a> <a id="8606" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="8608" class="Symbol">((</a><a id="8610" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="8616" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8618" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8620" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="8626" class="Symbol">(</a><a id="8627" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8630" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8631" class="Symbol">)</a> <a id="8633" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8635" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8638" class="Symbol">(</a><a id="8639" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="8643" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8644" class="Symbol">)</a> <a id="8646" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8649" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8652" class="Symbol">)</a> <a id="8654" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8656" href="Monad.Instance.K.PreElgot.html#8534" class="Bound">g</a><a id="8657" class="Symbol">)</a> <a id="8659" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a>
|
||
<a id="8674" href="Monad.Instance.K.PreElgot.html#8519" class="Function">pres₂</a> <a id="8680" class="Symbol">{</a><a id="8681" href="Monad.Instance.K.PreElgot.html#8681" class="Bound">Z</a><a id="8682" class="Symbol">}</a> <a id="8684" class="Symbol">{</a><a id="8685" href="Monad.Instance.K.PreElgot.html#8685" class="Bound">g</a><a id="8686" class="Symbol">}</a> <a id="8688" class="Symbol">=</a> <a id="8690" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
||
<a id="8710" class="Symbol">(</a><a id="8711" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="8717" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8719" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8721" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="8727" class="Symbol">(</a><a id="8728" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8731" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8732" class="Symbol">)</a> <a id="8734" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8736" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8739" class="Symbol">(</a><a id="8740" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="8744" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8745" class="Symbol">))</a> <a id="8748" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8750" class="Symbol">(</a><a id="8751" href="Monad.Instance.K.PreElgot.html#8685" class="Bound">g</a> <a id="8753" href="Monad.Instance.K.PreElgot.html#2555" class="Function Operator">#K</a><a id="8755" class="Symbol">)</a> <a id="8794" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8797" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="8803" class="Symbol">(</a><a id="8804" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="8810" class="Symbol">(</a><a id="8811" href="Monad.Instance.K.PreElgot.html#3291" class="Function">η'-preserves</a> <a id="8824" href="Monad.Instance.K.PreElgot.html#8685" class="Bound">g</a><a id="8825" class="Symbol">))</a> <a id="8828" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="8844" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="8850" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="8852" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8854" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="8860" class="Symbol">(</a><a id="8861" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8864" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8865" class="Symbol">)</a> <a id="8867" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8869" class="Symbol">(((</a><a id="8872" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8875" class="Symbol">(</a><a id="8876" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="8880" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8881" class="Symbol">)</a> <a id="8883" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="8886" href="Category.Ambient.html#2115" class="Function">idC</a><a id="8889" class="Symbol">)</a> <a id="8891" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="8893" href="Monad.Instance.K.PreElgot.html#8685" class="Bound">g</a><a id="8894" class="Symbol">)</a> <a id="8896" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a><a id="8898" class="Symbol">)</a> <a id="8928" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8931" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="8939" class="Symbol">((</a><a id="8941" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="8945" class="Symbol">(</a><a id="8946" href="Category.Ambient.html#10091" class="Function">F₁⇒extend</a> <a id="8956" href="Monad.PreElgot.html#1214" class="Field">T</a> <a id="8958" class="Symbol">(</a><a id="8959" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="8962" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="8963" class="Symbol">)))</a> <a id="8967" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="8975" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="8977" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="8981" class="Symbol">(</a><a id="8982" href="Monad.PreElgot.html#998" class="Function">PreElgotMonad.extend-preserves</a> <a id="9013" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a> <a id="9015" class="Symbol">((</a><a id="9017" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9020" class="Symbol">(</a><a id="9021" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="9025" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="9026" class="Symbol">)</a> <a id="9028" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9031" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9034" class="Symbol">)</a> <a id="9036" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9038" href="Monad.Instance.K.PreElgot.html#8685" class="Bound">g</a><a id="9039" class="Symbol">)</a> <a id="9041" class="Symbol">(</a><a id="9042" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="9048" class="Symbol">(</a><a id="9049" href="Categories.Functor.Core.html#432" class="Function">T.F.F₀</a> <a id="9056" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="9057" class="Symbol">)</a> <a id="9059" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9061" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9064" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="9065" class="Symbol">))</a> <a id="9068" class="Symbol">)</a><a id="9069" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="9085" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="9091" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="9093" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9095" class="Symbol">((</a><a id="9097" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="9104" class="Symbol">(</a><a id="9105" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="9111" class="Symbol">_</a> <a id="9113" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9115" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9118" class="Symbol">_)</a> <a id="9121" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9124" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9127" class="Symbol">)</a> <a id="9129" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9131" class="Symbol">((</a><a id="9133" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9136" class="Symbol">_</a> <a id="9138" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9141" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9144" class="Symbol">))</a> <a id="9147" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9149" href="Monad.Instance.K.PreElgot.html#8685" class="Bound">g</a><a id="9150" class="Symbol">)</a> <a id="9152" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a> <a id="9169" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9172" class="Symbol">(</a><a id="9173" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="9177" class="Symbol">(</a><a id="9178" href="Categories.Morphism.Reasoning.Core.html#2786" class="Function">elimʳ</a> <a id="9184" href="Categories.Functor.Core.html#511" class="Function">T.F.identity</a><a id="9196" class="Symbol">))</a> <a id="9199" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="9207" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="9223" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="9230" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="9234" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9236" class="Symbol">((</a><a id="9238" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="9245" class="Symbol">(</a><a id="9246" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="9252" class="Symbol">_</a> <a id="9254" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9256" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9259" class="Symbol">_)</a> <a id="9262" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9265" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9268" class="Symbol">)</a> <a id="9270" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9272" class="Symbol">((</a><a id="9274" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9277" class="Symbol">_</a> <a id="9279" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9282" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9285" class="Symbol">))</a> <a id="9288" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9290" href="Monad.Instance.K.PreElgot.html#8685" class="Bound">g</a><a id="9291" class="Symbol">)</a> <a id="9293" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a> <a id="9307" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9310" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="9314" class="Symbol">(</a><a id="9315" href="Monad.PreElgot.html#998" class="Function">PreElgotMonad.extend-preserves</a> <a id="9346" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a> <a id="9348" class="Symbol">((</a><a id="9350" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="9357" class="Symbol">(</a><a id="9358" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="9364" class="Symbol">(</a><a id="9365" href="Categories.Functor.Core.html#432" class="Function">T.F.F₀</a> <a id="9372" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="9373" class="Symbol">)</a> <a id="9375" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9377" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9380" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="9381" class="Symbol">)</a> <a id="9383" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9386" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9389" class="Symbol">)</a> <a id="9391" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9393" class="Symbol">(</a><a id="9394" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9397" class="Symbol">(</a><a id="9398" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="9402" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="9403" class="Symbol">)</a> <a id="9405" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9408" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9411" class="Symbol">)</a> <a id="9413" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9415" href="Monad.Instance.K.PreElgot.html#8685" class="Bound">g</a><a id="9416" class="Symbol">)</a> <a id="9418" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9421" class="Symbol">)</a> <a id="9423" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="9439" class="Symbol">(((</a><a id="9442" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="9449" href="Category.Ambient.html#2115" class="Function">idC</a> <a id="9453" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9456" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9459" class="Symbol">)</a> <a id="9461" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9463" class="Symbol">(</a><a id="9464" href="Categories.Monad.Relative.html#895" class="Function">extend</a> <a id="9471" class="Symbol">(</a><a id="9472" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="9478" class="Symbol">_</a> <a id="9480" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9482" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9485" class="Symbol">_)</a> <a id="9488" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9491" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9494" class="Symbol">)</a> <a id="9496" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9498" class="Symbol">((</a><a id="9500" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9503" class="Symbol">_</a> <a id="9505" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9508" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9511" class="Symbol">))</a> <a id="9514" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9516" href="Monad.Instance.K.PreElgot.html#8685" class="Bound">g</a><a id="9517" class="Symbol">)</a> <a id="9519" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a><a id="9521" class="Symbol">)</a> <a id="9523" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9526" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="9535" class="Symbol">(</a><a id="9536" href="Monad.PreElgot.html#815" class="Function">PreElgotMonad.elgotalgebras</a> <a id="9564" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a><a id="9565" class="Symbol">)</a> <a id="9567" class="Symbol">(</a><a id="9568" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="9574" class="Symbol">(</a><a id="9575" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="9581" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="9583" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="9592" class="Symbol">((</a><a id="9594" href="Categories.Morphism.Reasoning.Core.html#2786" class="Function">elimʳ</a> <a id="9600" href="Categories.Functor.Core.html#511" class="Function">T.F.identity</a><a id="9612" class="Symbol">)</a> <a id="9614" href="Categories.Category.Core.html#2634" class="Function Operator">⟩∘⟨</a> <a id="9618" class="Symbol">(</a><a id="9619" href="Category.Ambient.html#10091" class="Function">F₁⇒extend</a> <a id="9629" href="Monad.PreElgot.html#1214" class="Field">T</a> <a id="9631" class="Symbol">(</a><a id="9632" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9635" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="9636" class="Symbol">)))</a> <a id="9640" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="9649" class="Symbol">))</a> <a id="9652" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="9668" class="Symbol">(((</a><a id="9671" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="9677" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="9679" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9681" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="9687" class="Symbol">(</a><a id="9688" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9691" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="9692" class="Symbol">)</a> <a id="9694" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9697" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9700" class="Symbol">)</a> <a id="9702" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9704" class="Symbol">(</a><a id="9705" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9708" class="Symbol">_</a> <a id="9710" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9713" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9716" class="Symbol">)</a> <a id="9718" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9720" href="Monad.Instance.K.PreElgot.html#8685" class="Bound">g</a><a id="9721" class="Symbol">)</a> <a id="9723" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a><a id="9725" class="Symbol">)</a> <a id="9752" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9755" href="Algebra.Elgot.html#2331" class="Field">#-resp-≈</a> <a id="9764" class="Symbol">(</a><a id="9765" href="Monad.PreElgot.html#815" class="Function">PreElgotMonad.elgotalgebras</a> <a id="9793" href="Monad.Instance.K.PreElgot.html#1527" class="Bound">A</a><a id="9794" class="Symbol">)</a> <a id="9796" class="Symbol">(</a><a id="9797" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="9803" class="Symbol">(</a><a id="9804" href="Categories.Category.Cocartesian.html#2699" class="Function">+₁∘+₁</a> <a id="9810" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="9812" href="Categories.Category.Cocartesian.html#2622" class="Function">+₁-cong₂</a> <a id="9821" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="9827" href="Categories.Category.Core.html#1339" class="Function">identity²</a><a id="9836" class="Symbol">))</a> <a id="9839" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="9855" class="Symbol">(((</a><a id="9858" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="9864" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="9866" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9868" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="9874" class="Symbol">(</a><a id="9875" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9878" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="9879" class="Symbol">)</a> <a id="9881" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9883" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9886" class="Symbol">(</a><a id="9887" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="9891" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="9892" class="Symbol">)</a> <a id="9894" href="Categories.Category.Cocartesian.html#2133" class="Function Operator">+₁</a> <a id="9897" href="Category.Ambient.html#2115" class="Function">idC</a><a id="9900" class="Symbol">)</a> <a id="9902" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9904" href="Monad.Instance.K.PreElgot.html#8685" class="Bound">g</a><a id="9905" class="Symbol">)</a> <a id="9907" href="Monad.Instance.K.PreElgot.html#2639" class="Function Operator">#T</a><a id="9909" class="Symbol">)</a> <a id="9939" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
||
<a id="9953" href="Monad.Instance.K.PreElgot.html#9953" class="Function">comm</a> <a id="9958" class="Symbol">:</a> <a id="9960" class="Symbol">(</a><a id="9961" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="9967" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="9969" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9971" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="9977" class="Symbol">(</a><a id="9978" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9981" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="9982" class="Symbol">)</a> <a id="9984" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9986" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="9989" class="Symbol">(</a><a id="9990" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="9994" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="9995" class="Symbol">))</a> <a id="9998" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10000" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="10005" class="Symbol">(</a><a id="10006" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="10010" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="10011" class="Symbol">)</a> <a id="10013" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="10015" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="10018" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a>
|
||
<a id="10032" href="Monad.Instance.K.PreElgot.html#9953" class="Function">comm</a> <a id="10037" class="Symbol">=</a> <a id="10039" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
|
||
<a id="10059" class="Symbol">(</a><a id="10060" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="10066" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="10068" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10070" href="Categories.Functor.Core.html#806" class="Function">T.F.₁</a> <a id="10076" class="Symbol">(</a><a id="10077" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="10080" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="10081" class="Symbol">)</a> <a id="10083" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10085" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="10088" class="Symbol">(</a><a id="10089" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="10093" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="10094" class="Symbol">))</a> <a id="10097" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10099" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="10104" class="Symbol">(</a><a id="10105" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="10109" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="10110" class="Symbol">)</a> <a id="10112" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10115" class="Symbol">(</a><a id="10116" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="10124" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="10128" class="Symbol">(</a><a id="10129" href="Monad.Instance.K.PreElgot.html#3507" class="Function">commute</a> <a id="10137" class="Symbol">(</a><a id="10138" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="10141" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="10142" class="Symbol">)))</a> <a id="10146" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="10154" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="10170" class="Symbol">(</a><a id="10171" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="10177" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="10179" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10181" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="10184" class="Symbol">_</a> <a id="10186" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10188" href="Categories.Functor.Core.html#806" class="Function">K.₁</a> <a id="10192" class="Symbol">(</a><a id="10193" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="10196" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="10197" class="Symbol">))</a> <a id="10200" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10202" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="10207" class="Symbol">(</a><a id="10208" href="Categories.Functor.Core.html#797" class="Function">K.₀</a> <a id="10212" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="10213" class="Symbol">)</a> <a id="10223" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10226" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="10232" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="10234" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="10242" class="Symbol">(</a><a id="10243" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="10249" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="10252" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="10260" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="10264" class="Symbol">(</a><a id="10265" href="Categories.NaturalTransformation.Core.html#827" class="Function">monadK.η.commute</a> <a id="10282" class="Symbol">(</a><a id="10283" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="10286" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="10287" class="Symbol">)))</a> <a id="10291" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="10307" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="10313" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="10315" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10317" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="10320" class="Symbol">_</a> <a id="10322" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10324" href="Categories.NaturalTransformation.Core.html#783" class="Function">ηK.η</a> <a id="10329" class="Symbol">(</a><a id="10330" href="Categories.Functor.Core.html#432" class="Function">T.F.F₀</a> <a id="10337" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a><a id="10338" class="Symbol">)</a> <a id="10340" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10342" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="10345" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="10360" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10363" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="10371" class="Symbol">(</a><a id="10372" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="10378" class="Symbol">(</a><a id="10379" href="Categories.FreeObjects.Free.html#937" class="Field">FreeObject.*-lift</a> <a id="10397" class="Symbol">(</a><a id="10398" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="10411" class="Symbol">_)</a> <a id="10414" class="Symbol">(</a><a id="10415" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="10421" class="Symbol">_)))</a> <a id="10426" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="10442" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.μ.η</a> <a id="10448" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="10450" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10452" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="10458" class="Symbol">_</a> <a id="10460" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="10462" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="10465" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="10495" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10498" href="Categories.Morphism.Reasoning.Core.html#6851" class="Function">cancelˡ</a> <a id="10506" class="Symbol">(</a><a id="10507" href="Categories.Monad.html#953" class="Field">Monad.identityʳ</a> <a id="10523" href="Monad.PreElgot.html#1214" class="Field">T</a><a id="10524" class="Symbol">)</a> <a id="10526" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">⟩</a>
|
||
<a id="10542" href="Monad.Instance.K.PreElgot.html#2394" class="Function">η'</a> <a id="10545" href="Monad.Instance.K.PreElgot.html#6709" class="Bound">X</a> <a id="10595" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a>
|
||
<a id="10601" href="Monad.Instance.K.PreElgot.html#10601" class="Function">!-unique′</a> <a id="10611" class="Symbol">:</a> <a id="10613" class="Symbol">∀</a> <a id="10615" class="Symbol">{</a><a id="10616" href="Monad.Instance.K.PreElgot.html#10616" class="Bound">A</a> <a id="10618" class="Symbol">:</a> <a id="10620" href="Monad.PreElgot.html#1160" class="Record">PreElgotMonad</a><a id="10633" class="Symbol">}</a> <a id="10635" class="Symbol">(</a><a id="10636" href="Monad.Instance.K.PreElgot.html#10636" class="Bound">f</a> <a id="10638" class="Symbol">:</a> <a id="10640" href="Category.Construction.PreElgotMonads.html#1190" class="Record">PreElgotMonad-Morphism</a> <a id="10663" href="Monad.Instance.K.PreElgot.html#1238" class="Function">preElgot</a> <a id="10672" href="Monad.Instance.K.PreElgot.html#10616" class="Bound">A</a><a id="10673" class="Symbol">)</a> <a id="10675" class="Symbol">→</a> <a id="10677" href="Category.Construction.PreElgotMonads.html#1253" class="Field">PreElgotMonad-Morphism.α</a> <a id="10702" class="Symbol">(</a><a id="10703" href="Monad.Instance.K.PreElgot.html#1456" class="Function">!′</a> <a id="10706" class="Symbol">{</a><a id="10707" class="Argument">A</a> <a id="10709" class="Symbol">=</a> <a id="10711" href="Monad.Instance.K.PreElgot.html#10616" class="Bound">A</a><a id="10712" class="Symbol">})</a> <a id="10715" href="Categories.NaturalTransformation.Equivalence.html#630" class="Function Operator">≃</a> <a id="10717" href="Category.Construction.PreElgotMonads.html#1253" class="Field">PreElgotMonad-Morphism.α</a> <a id="10742" href="Monad.Instance.K.PreElgot.html#10636" class="Bound">f</a>
|
||
<a id="10748" href="Monad.Instance.K.PreElgot.html#10601" class="Function">!-unique′</a> <a id="10758" class="Symbol">{</a><a id="10759" href="Monad.Instance.K.PreElgot.html#10759" class="Bound">A</a><a id="10760" class="Symbol">}</a> <a id="10762" href="Monad.Instance.K.PreElgot.html#10762" class="Bound">f</a> <a id="10764" class="Symbol">{</a><a id="10765" href="Monad.Instance.K.PreElgot.html#10765" class="Bound">X</a><a id="10766" class="Symbol">}</a> <a id="10768" class="Symbol">=</a> <a id="10770" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="10774" class="Symbol">(</a><a id="10775" href="Categories.FreeObjects.Free.html#1017" class="Field">FreeObject.*-uniq</a>
|
||
<a id="10825" class="Symbol">(</a><a id="10826" href="Monad.Instance.K.html#1182" class="Field">freealgebras</a> <a id="10839" href="Monad.Instance.K.PreElgot.html#10765" class="Bound">X</a><a id="10840" class="Symbol">)</a>
|
||
<a id="10875" class="Symbol">{</a><a id="10876" class="Argument">A</a> <a id="10878" class="Symbol">=</a> <a id="10880" class="Keyword">record</a> <a id="10887" class="Symbol">{</a> <a id="10889" href="Algebra.Elgot.html#16018" class="Field">A</a> <a id="10891" class="Symbol">=</a> <a id="10893" href="Categories.Functor.Core.html#432" class="Function">T.F.F₀</a> <a id="10900" href="Monad.Instance.K.PreElgot.html#10765" class="Bound">X</a> <a id="10902" class="Symbol">;</a> <a id="10904" href="Algebra.Elgot.html#16032" class="Field">algebra</a> <a id="10912" class="Symbol">=</a> <a id="10914" href="Monad.PreElgot.html#815" class="Function">PreElgotMonad.elgotalgebras</a> <a id="10942" href="Monad.Instance.K.PreElgot.html#10759" class="Bound">A</a> <a id="10944" class="Symbol">}}</a>
|
||
<a id="10980" class="Symbol">(</a><a id="10981" href="Categories.NaturalTransformation.Core.html#783" class="Function">T.η.η</a> <a id="10987" href="Monad.Instance.K.PreElgot.html#10765" class="Bound">X</a><a id="10988" class="Symbol">)</a>
|
||
<a id="11023" class="Symbol">(</a><a id="11024" class="Keyword">record</a> <a id="11031" class="Symbol">{</a> <a id="11033" href="Category.Construction.ElgotAlgebras.html#794" class="Field">h</a> <a id="11035" class="Symbol">=</a> <a id="11037" href="Categories.NaturalTransformation.Core.html#783" class="Function">α.η</a> <a id="11041" href="Monad.Instance.K.PreElgot.html#10765" class="Bound">X</a> <a id="11043" class="Symbol">;</a> <a id="11045" href="Category.Construction.ElgotAlgebras.html#812" class="Field">preserves</a> <a id="11055" class="Symbol">=</a> <a id="11057" href="Category.Construction.PreElgotMonads.html#1490" class="Function">preserves</a> <a id="11067" class="Symbol">_</a> <a id="11069" class="Symbol">})</a>
|
||
<a id="11105" href="Category.Construction.PreElgotMonads.html#1344" class="Function">α-η</a><a id="11108" class="Symbol">)</a>
|
||
<a id="11116" class="Keyword">where</a>
|
||
<a id="11130" class="Keyword">open</a> <a id="11135" href="Category.Construction.PreElgotMonads.html#1190" class="Module">PreElgotMonad-Morphism</a> <a id="11158" href="Monad.Instance.K.PreElgot.html#10762" class="Bound">f</a> <a id="11160" class="Keyword">using</a> <a id="11166" class="Symbol">(</a><a id="11167" href="Category.Construction.PreElgotMonads.html#1253" class="Field">α</a><a id="11168" class="Symbol">;</a> <a id="11170" href="Category.Construction.PreElgotMonads.html#1344" class="Field">α-η</a><a id="11173" class="Symbol">;</a> <a id="11175" href="Category.Construction.PreElgotMonads.html#1490" class="Field">preserves</a><a id="11184" class="Symbol">)</a>
|
||
<a id="11194" class="Keyword">open</a> <a id="11199" href="Monad.PreElgot.html#1160" class="Module">PreElgotMonad</a> <a id="11213" href="Monad.Instance.K.PreElgot.html#10759" class="Bound">A</a> <a id="11215" class="Keyword">using</a> <a id="11221" class="Symbol">(</a><a id="11222" href="Monad.PreElgot.html#1214" class="Field">T</a><a id="11223" class="Symbol">)</a>
|
||
<a id="11233" class="Keyword">module</a> <a id="11240" href="Monad.Instance.K.PreElgot.html#11240" class="Module">T</a> <a id="11242" class="Symbol">=</a> <a id="11244" href="Categories.Monad.html#454" class="Module">Monad</a> <a id="11250" href="Monad.PreElgot.html#1214" class="Function">T</a>
|
||
</pre>
|
||
</body>
|
||
</html>
|