mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
140 lines
No EOL
116 KiB
HTML
140 lines
No EOL
116 KiB
HTML
<!DOCTYPE HTML>
|
||
<html><head><meta charset="utf-8"><title>Categories.Adjoint.Monadic.Properties</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Symbol">{-#</a> <a id="5" class="Keyword">OPTIONS</a> <a id="13" class="Pragma">--without-K</a> <a id="25" class="Pragma">--safe</a> <a id="32" class="Symbol">#-}</a>
|
||
|
||
<a id="37" class="Keyword">open</a> <a id="42" class="Keyword">import</a> <a id="49" href="Categories.Adjoint.html" class="Module">Categories.Adjoint</a>
|
||
<a id="68" class="Keyword">open</a> <a id="73" class="Keyword">import</a> <a id="80" href="Categories.Category.html" class="Module">Categories.Category</a>
|
||
<a id="100" class="Keyword">open</a> <a id="105" class="Keyword">import</a> <a id="112" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="131" class="Keyword">renaming</a> <a id="140" class="Symbol">(</a><a id="141" href="Categories.Functor.html#349" class="Function">id</a> <a id="144" class="Symbol">to</a> <a id="147" class="Function">idF</a><a id="150" class="Symbol">)</a>
|
||
|
||
<a id="153" class="Keyword">module</a> <a id="160" href="Categories.Adjoint.Monadic.Properties.html" class="Module">Categories.Adjoint.Monadic.Properties</a> <a id="198" class="Symbol">{</a><a id="199" href="Categories.Adjoint.Monadic.Properties.html#199" class="Bound">o</a> <a id="201" href="Categories.Adjoint.Monadic.Properties.html#201" class="Bound">ℓ</a> <a id="203" href="Categories.Adjoint.Monadic.Properties.html#203" class="Bound">e</a> <a id="205" href="Categories.Adjoint.Monadic.Properties.html#205" class="Bound">o′</a> <a id="208" href="Categories.Adjoint.Monadic.Properties.html#208" class="Bound">ℓ′</a> <a id="211" href="Categories.Adjoint.Monadic.Properties.html#211" class="Bound">e′</a><a id="213" class="Symbol">}</a> <a id="215" class="Symbol">{</a><a id="216" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="218" class="Symbol">:</a> <a id="220" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="229" href="Categories.Adjoint.Monadic.Properties.html#199" class="Bound">o</a> <a id="231" href="Categories.Adjoint.Monadic.Properties.html#201" class="Bound">ℓ</a> <a id="233" href="Categories.Adjoint.Monadic.Properties.html#203" class="Bound">e</a><a id="234" class="Symbol">}</a> <a id="236" class="Symbol">{</a><a id="237" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="239" class="Symbol">:</a> <a id="241" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="250" href="Categories.Adjoint.Monadic.Properties.html#205" class="Bound">o′</a> <a id="253" href="Categories.Adjoint.Monadic.Properties.html#208" class="Bound">ℓ′</a> <a id="256" href="Categories.Adjoint.Monadic.Properties.html#211" class="Bound">e′</a><a id="258" class="Symbol">}</a>
|
||
<a id="305" class="Symbol">{</a><a id="306" href="Categories.Adjoint.Monadic.Properties.html#306" class="Bound">L</a> <a id="308" class="Symbol">:</a> <a id="310" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="318" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="320" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a><a id="321" class="Symbol">}</a> <a id="323" class="Symbol">{</a><a id="324" href="Categories.Adjoint.Monadic.Properties.html#324" class="Bound">R</a> <a id="326" class="Symbol">:</a> <a id="328" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="336" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="338" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a><a id="339" class="Symbol">}</a> <a id="341" class="Symbol">(</a><a id="342" href="Categories.Adjoint.Monadic.Properties.html#342" class="Bound">adjoint</a> <a id="350" class="Symbol">:</a> <a id="352" href="Categories.Adjoint.Monadic.Properties.html#306" class="Bound">L</a> <a id="354" href="Categories.Adjoint.html#7972" class="Function Operator">⊣</a> <a id="356" href="Categories.Adjoint.Monadic.Properties.html#324" class="Bound">R</a><a id="357" class="Symbol">)</a> <a id="359" class="Keyword">where</a>
|
||
|
||
|
||
<a id="367" class="Keyword">open</a> <a id="372" class="Keyword">import</a> <a id="379" href="Level.html" class="Module">Level</a>
|
||
<a id="385" class="Keyword">open</a> <a id="390" class="Keyword">import</a> <a id="397" href="Function.html" class="Module">Function</a> <a id="406" class="Keyword">using</a> <a id="412" class="Symbol">(</a><a id="413" href="Function.Base.html#1928" class="Function Operator">_$_</a><a id="416" class="Symbol">)</a>
|
||
|
||
<a id="419" class="Keyword">open</a> <a id="424" class="Keyword">import</a> <a id="431" href="Categories.Adjoint.Properties.html" class="Module">Categories.Adjoint.Properties</a>
|
||
<a id="461" class="Keyword">open</a> <a id="466" class="Keyword">import</a> <a id="473" href="Categories.Adjoint.Monadic.html" class="Module">Categories.Adjoint.Monadic</a>
|
||
<a id="500" class="Keyword">open</a> <a id="505" class="Keyword">import</a> <a id="512" href="Categories.NaturalTransformation.NaturalIsomorphism.html" class="Module">Categories.NaturalTransformation.NaturalIsomorphism</a>
|
||
<a id="564" class="Keyword">open</a> <a id="569" class="Keyword">import</a> <a id="576" href="Categories.NaturalTransformation.html" class="Module">Categories.NaturalTransformation</a>
|
||
<a id="609" class="Keyword">open</a> <a id="614" class="Keyword">import</a> <a id="621" href="Categories.Monad.html" class="Module">Categories.Monad</a>
|
||
|
||
<a id="639" class="Keyword">open</a> <a id="644" class="Keyword">import</a> <a id="651" href="Categories.Diagram.Coequalizer.html" class="Module">Categories.Diagram.Coequalizer</a>
|
||
|
||
<a id="683" class="Keyword">open</a> <a id="688" class="Keyword">import</a> <a id="695" href="Categories.Category.Construction.EilenbergMoore.html" class="Module">Categories.Category.Construction.EilenbergMoore</a>
|
||
<a id="743" class="Keyword">open</a> <a id="748" class="Keyword">import</a> <a id="755" href="Categories.Category.Construction.Properties.EilenbergMoore.html" class="Module">Categories.Category.Construction.Properties.EilenbergMoore</a>
|
||
|
||
<a id="815" class="Keyword">open</a> <a id="820" class="Keyword">import</a> <a id="827" href="Categories.Morphism.html" class="Module">Categories.Morphism</a>
|
||
<a id="847" class="Keyword">import</a> <a id="854" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="884" class="Symbol">as</a> <a id="887" class="Module">MR</a>
|
||
|
||
<a id="891" class="Keyword">private</a>
|
||
<a id="901" class="Keyword">module</a> <a id="L"></a><a id="908" href="Categories.Adjoint.Monadic.Properties.html#908" class="Module">L</a> <a id="910" class="Symbol">=</a> <a id="912" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="920" href="Categories.Adjoint.Monadic.Properties.html#306" class="Bound">L</a>
|
||
<a id="924" class="Keyword">module</a> <a id="R"></a><a id="931" href="Categories.Adjoint.Monadic.Properties.html#931" class="Module">R</a> <a id="933" class="Symbol">=</a> <a id="935" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="943" href="Categories.Adjoint.Monadic.Properties.html#324" class="Bound">R</a>
|
||
|
||
<a id="948" class="Keyword">module</a> <a id="𝒞"></a><a id="955" href="Categories.Adjoint.Monadic.Properties.html#955" class="Module">𝒞</a> <a id="957" class="Symbol">=</a> <a id="959" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="968" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a>
|
||
<a id="972" class="Keyword">module</a> <a id="𝒟"></a><a id="979" href="Categories.Adjoint.Monadic.Properties.html#979" class="Module">𝒟</a> <a id="981" class="Symbol">=</a> <a id="983" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="992" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a>
|
||
|
||
<a id="997" class="Keyword">module</a> <a id="adjoint"></a><a id="1004" href="Categories.Adjoint.Monadic.Properties.html#1004" class="Module">adjoint</a> <a id="1012" class="Symbol">=</a> <a id="1014" href="Categories.Adjoint.html#1306" class="Module">Adjoint</a> <a id="1022" href="Categories.Adjoint.Monadic.Properties.html#342" class="Bound">adjoint</a>
|
||
|
||
<a id="T"></a><a id="1033" href="Categories.Adjoint.Monadic.Properties.html#1033" class="Function">T</a> <a id="1035" class="Symbol">:</a> <a id="1037" href="Categories.Monad.html#454" class="Record">Monad</a> <a id="1043" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a>
|
||
<a id="1047" href="Categories.Adjoint.Monadic.Properties.html#1033" class="Function">T</a> <a id="1049" class="Symbol">=</a> <a id="1051" href="Categories.Adjoint.Properties.html#9436" class="Function">adjoint⇒monad</a> <a id="1065" href="Categories.Adjoint.Monadic.Properties.html#342" class="Bound">adjoint</a>
|
||
|
||
<a id="𝒞ᵀ"></a><a id="1076" href="Categories.Adjoint.Monadic.Properties.html#1076" class="Function">𝒞ᵀ</a> <a id="1079" class="Symbol">:</a> <a id="1081" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1090" class="Symbol">_</a> <a id="1092" class="Symbol">_</a> <a id="1094" class="Symbol">_</a>
|
||
<a id="1098" href="Categories.Adjoint.Monadic.Properties.html#1076" class="Function">𝒞ᵀ</a> <a id="1101" class="Symbol">=</a> <a id="1103" href="Categories.Category.Construction.EilenbergMoore.html#734" class="Function">EilenbergMoore</a> <a id="1118" href="Categories.Adjoint.Monadic.Properties.html#1033" class="Function">T</a>
|
||
|
||
<a id="Comparison"></a><a id="1123" href="Categories.Adjoint.Monadic.Properties.html#1123" class="Function">Comparison</a> <a id="1134" class="Symbol">:</a> <a id="1136" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1144" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="1146" href="Categories.Adjoint.Monadic.Properties.html#1076" class="Function">𝒞ᵀ</a>
|
||
<a id="1151" href="Categories.Adjoint.Monadic.Properties.html#1123" class="Function">Comparison</a> <a id="1162" class="Symbol">=</a> <a id="1164" href="Categories.Category.Construction.Properties.EilenbergMoore.html#1167" class="Function">ComparisonF</a> <a id="1176" href="Categories.Adjoint.Monadic.Properties.html#342" class="Bound">adjoint</a>
|
||
|
||
<a id="1187" class="Keyword">module</a> <a id="Comparison"></a><a id="1194" href="Categories.Adjoint.Monadic.Properties.html#1194" class="Module">Comparison</a> <a id="1205" class="Symbol">=</a> <a id="1207" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1215" href="Categories.Adjoint.Monadic.Properties.html#1123" class="Function">Comparison</a>
|
||
|
||
|
||
<a id="1228" class="Comment">-- If we have a coequalizer of the following diagram for every T-algabra, then the comparison functor has a left adjoint.</a>
|
||
<a id="1350" class="Keyword">module</a> <a id="1357" href="Categories.Adjoint.Monadic.Properties.html#1357" class="Module">_</a> <a id="1359" class="Symbol">(</a><a id="1360" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="1376" class="Symbol">:</a> <a id="1378" class="Symbol">(</a><a id="1379" href="Categories.Adjoint.Monadic.Properties.html#1379" class="Bound">M</a> <a id="1381" class="Symbol">:</a> <a id="1383" href="Categories.Category.Construction.EilenbergMoore.html#369" class="Record">Module</a> <a id="1390" href="Categories.Adjoint.Monadic.Properties.html#1033" class="Function">T</a><a id="1391" class="Symbol">)</a> <a id="1393" class="Symbol">→</a> <a id="1395" href="Categories.Diagram.Coequalizer.html#1885" class="Record">Coequalizer</a> <a id="1407" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="1409" class="Symbol">(</a><a id="1410" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="1415" class="Symbol">(</a><a id="1416" href="Categories.Category.Construction.EilenbergMoore.html#431" class="Field">Module.action</a> <a id="1430" href="Categories.Adjoint.Monadic.Properties.html#1379" class="Bound">M</a><a id="1431" class="Symbol">))</a> <a id="1434" class="Symbol">(</a><a id="1435" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.counit.η</a> <a id="1452" class="Symbol">(</a><a id="1453" href="Categories.Functor.Core.html#797" class="Function">L.₀</a> <a id="1457" class="Symbol">(</a><a id="1458" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="1467" href="Categories.Adjoint.Monadic.Properties.html#1379" class="Bound">M</a><a id="1468" class="Symbol">))))</a> <a id="1473" class="Keyword">where</a>
|
||
|
||
<a id="1482" class="Keyword">open</a> <a id="1487" href="Categories.Diagram.Coequalizer.html#1885" class="Module">Coequalizer</a>
|
||
|
||
<a id="1502" href="Categories.Adjoint.Monadic.Properties.html#1502" class="Function">Comparison⁻¹</a> <a id="1515" class="Symbol">:</a> <a id="1517" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1525" href="Categories.Adjoint.Monadic.Properties.html#1076" class="Function">𝒞ᵀ</a> <a id="1528" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a>
|
||
<a id="1532" href="Categories.Adjoint.Monadic.Properties.html#1502" class="Function">Comparison⁻¹</a> <a id="1545" class="Symbol">=</a> <a id="1547" class="Keyword">record</a>
|
||
<a id="1558" class="Symbol">{</a> <a id="1560" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1563" class="Symbol">=</a> <a id="1565" class="Symbol">λ</a> <a id="1567" href="Categories.Adjoint.Monadic.Properties.html#1567" class="Bound">M</a> <a id="1569" class="Symbol">→</a> <a id="1571" href="Categories.Diagram.Coequalizer.html#1948" class="Field">obj</a> <a id="1575" class="Symbol">(</a><a id="1576" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="1592" href="Categories.Adjoint.Monadic.Properties.html#1567" class="Bound">M</a><a id="1593" class="Symbol">)</a>
|
||
<a id="1599" class="Symbol">;</a> <a id="1601" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="1604" class="Symbol">=</a> <a id="1606" class="Symbol">λ</a> <a id="1608" class="Symbol">{</a><a id="1609" href="Categories.Adjoint.Monadic.Properties.html#1609" class="Bound">M</a><a id="1610" class="Symbol">}</a> <a id="1612" class="Symbol">{</a><a id="1613" href="Categories.Adjoint.Monadic.Properties.html#1613" class="Bound">N</a><a id="1614" class="Symbol">}</a> <a id="1616" href="Categories.Adjoint.Monadic.Properties.html#1616" class="Bound">α</a> <a id="1618" class="Symbol">→</a> <a id="1620" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="1631" class="Symbol">(</a><a id="1632" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="1648" href="Categories.Adjoint.Monadic.Properties.html#1609" class="Bound">M</a><a id="1649" class="Symbol">)</a> <a id="1651" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="1653" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="1665" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="1667" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="1669" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="1671" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="1673" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="1677" class="Symbol">(</a><a id="1678" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="1694" href="Categories.Adjoint.Monadic.Properties.html#1613" class="Bound">N</a><a id="1695" class="Symbol">)</a> <a id="1697" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="1699" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="1704" class="Symbol">(</a><a id="1705" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="1717" href="Categories.Adjoint.Monadic.Properties.html#1616" class="Bound">α</a><a id="1718" class="Symbol">)</a> <a id="1720" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="1722" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="1724" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="1729" class="Symbol">(</a><a id="1730" href="Categories.Category.Construction.EilenbergMoore.html#431" class="Field">Module.action</a> <a id="1744" href="Categories.Adjoint.Monadic.Properties.html#1609" class="Bound">M</a><a id="1745" class="Symbol">)</a> <a id="1747" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="1777" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1780" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="1786" class="Symbol">(</a><a id="1787" href="Categories.Category.Core.html#3005" class="Function">⟺</a> <a id="1789" href="Categories.Functor.Core.html#565" class="Function">L.homomorphism</a><a id="1803" class="Symbol">)</a> <a id="1805" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="1813" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="1815" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="1817" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="1821" class="Symbol">(</a><a id="1822" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="1838" href="Categories.Adjoint.Monadic.Properties.html#1613" class="Bound">N</a><a id="1839" class="Symbol">)</a> <a id="1841" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="1843" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="1848" class="Symbol">(</a><a id="1849" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="1851" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="1853" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="1865" href="Categories.Adjoint.Monadic.Properties.html#1616" class="Bound">α</a> <a id="1867" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="1869" href="Categories.Category.Construction.EilenbergMoore.html#431" class="Field">Module.action</a> <a id="1883" href="Categories.Adjoint.Monadic.Properties.html#1609" class="Bound">M</a> <a id="1885" href="Categories.Category.html#700" class="Function Operator">]</a><a id="1886" class="Symbol">)</a> <a id="1888" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="1925" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1928" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="1936" href="Categories.Functor.Core.html#696" class="Function">L.F-resp-≈</a> <a id="1947" class="Symbol">(</a><a id="1948" href="Categories.Category.Construction.EilenbergMoore.html#688" class="Field">Module⇒.commute</a> <a id="1964" href="Categories.Adjoint.Monadic.Properties.html#1616" class="Bound">α</a><a id="1965" class="Symbol">)</a> <a id="1967" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="1975" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="1977" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="1979" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="1983" class="Symbol">(</a><a id="1984" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="2000" href="Categories.Adjoint.Monadic.Properties.html#1613" class="Bound">N</a><a id="2001" class="Symbol">)</a> <a id="2003" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2005" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2010" class="Symbol">(</a><a id="2011" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="2013" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2015" href="Categories.Category.Construction.EilenbergMoore.html#431" class="Field">Module.action</a> <a id="2029" href="Categories.Adjoint.Monadic.Properties.html#1613" class="Bound">N</a> <a id="2031" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2033" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2038" class="Symbol">(</a><a id="2039" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2044" class="Symbol">(</a><a id="2045" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="2057" href="Categories.Adjoint.Monadic.Properties.html#1616" class="Bound">α</a><a id="2058" class="Symbol">))</a> <a id="2061" href="Categories.Category.html#700" class="Function Operator">]</a><a id="2062" class="Symbol">)</a> <a id="2064" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2087" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2090" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="2098" href="Categories.Functor.Core.html#565" class="Function">L.homomorphism</a> <a id="2113" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2121" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="2123" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2125" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="2129" class="Symbol">(</a><a id="2130" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="2146" href="Categories.Adjoint.Monadic.Properties.html#1613" class="Bound">N</a><a id="2147" class="Symbol">)</a> <a id="2149" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2151" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="2153" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2155" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2160" class="Symbol">(</a><a id="2161" href="Categories.Category.Construction.EilenbergMoore.html#431" class="Field">Module.action</a> <a id="2175" href="Categories.Adjoint.Monadic.Properties.html#1613" class="Bound">N</a><a id="2176" class="Symbol">)</a> <a id="2178" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2180" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2185" class="Symbol">(</a><a id="2186" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2191" class="Symbol">(</a><a id="2192" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2197" class="Symbol">(</a><a id="2198" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="2210" href="Categories.Adjoint.Monadic.Properties.html#1616" class="Bound">α</a><a id="2211" class="Symbol">)))</a> <a id="2215" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2217" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2233" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2236" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="2242" class="Symbol">(</a><a id="2243" href="Categories.Diagram.Coequalizer.html#488" class="Function">equality</a> <a id="2252" class="Symbol">(</a><a id="2253" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="2269" href="Categories.Adjoint.Monadic.Properties.html#1613" class="Bound">N</a><a id="2270" class="Symbol">))</a> <a id="2273" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2281" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="2283" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2285" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="2287" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2289" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="2293" class="Symbol">(</a><a id="2294" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="2310" href="Categories.Adjoint.Monadic.Properties.html#1613" class="Bound">N</a><a id="2311" class="Symbol">)</a> <a id="2313" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2315" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.counit.η</a> <a id="2332" class="Symbol">(</a><a id="2333" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="2338" class="Symbol">(</a><a id="2339" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="2348" href="Categories.Adjoint.Monadic.Properties.html#1613" class="Bound">N</a><a id="2349" class="Symbol">))</a> <a id="2352" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2354" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2356" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2361" class="Symbol">(</a><a id="2362" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2367" class="Symbol">(</a><a id="2368" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2373" class="Symbol">(</a><a id="2374" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="2386" href="Categories.Adjoint.Monadic.Properties.html#1616" class="Bound">α</a><a id="2387" class="Symbol">)))</a> <a id="2391" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2393" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2396" href="Categories.Morphism.Reasoning.Core.html#3392" class="Function">extendˡ</a> <a id="2404" class="Symbol">(</a><a id="2405" href="Categories.NaturalTransformation.Core.html#827" class="Function">adjoint.counit.commute</a> <a id="2428" class="Symbol">(</a><a id="2429" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2434" class="Symbol">(</a><a id="2435" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="2447" href="Categories.Adjoint.Monadic.Properties.html#1616" class="Bound">α</a><a id="2448" class="Symbol">)))</a> <a id="2452" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2460" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="2462" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2464" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="2466" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2468" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="2472" class="Symbol">(</a><a id="2473" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="2489" href="Categories.Adjoint.Monadic.Properties.html#1613" class="Bound">N</a><a id="2490" class="Symbol">)</a> <a id="2492" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2494" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2499" class="Symbol">(</a><a id="2500" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="2512" href="Categories.Adjoint.Monadic.Properties.html#1616" class="Bound">α</a><a id="2513" class="Symbol">)</a> <a id="2515" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2517" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2519" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.counit.η</a> <a id="2536" class="Symbol">(</a><a id="2537" href="Categories.Functor.Core.html#797" class="Function">L.₀</a> <a id="2541" class="Symbol">(</a><a id="2542" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="2551" href="Categories.Adjoint.Monadic.Properties.html#1609" class="Bound">M</a><a id="2552" class="Symbol">))</a> <a id="2555" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2572" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="2578" class="Symbol">;</a> <a id="2580" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="2589" class="Symbol">=</a> <a id="2591" class="Symbol">λ</a> <a id="2593" class="Symbol">{</a><a id="2594" href="Categories.Adjoint.Monadic.Properties.html#2594" class="Bound">A</a><a id="2595" class="Symbol">}</a> <a id="2597" class="Symbol">→</a> <a id="2599" href="Categories.Category.Core.html#3005" class="Function">⟺</a> <a id="2601" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="2603" href="Categories.Diagram.Coequalizer.html#652" class="Function">unique</a> <a id="2610" class="Symbol">(</a><a id="2611" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="2627" href="Categories.Adjoint.Monadic.Properties.html#2594" class="Bound">A</a><a id="2628" class="Symbol">)</a> <a id="2630" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="2632" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="2644" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="2646" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2648" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="2652" class="Symbol">(</a><a id="2653" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="2669" href="Categories.Adjoint.Monadic.Properties.html#2594" class="Bound">A</a><a id="2670" class="Symbol">)</a> <a id="2672" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2674" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2679" href="Categories.Category.Core.html#630" class="Function">𝒞.id</a> <a id="2684" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2686" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2689" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="2697" href="Categories.Functor.Core.html#511" class="Function">L.identity</a> <a id="2708" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2716" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="2718" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2720" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="2724" class="Symbol">(</a><a id="2725" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="2741" href="Categories.Adjoint.Monadic.Properties.html#2594" class="Bound">A</a><a id="2742" class="Symbol">)</a> <a id="2744" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2746" href="Categories.Category.Core.html#630" class="Function">𝒟.id</a> <a id="2751" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2758" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2761" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a> <a id="2769" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2777" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="2779" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2781" href="Categories.Category.Core.html#630" class="Function">𝒟.id</a> <a id="2786" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2788" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="2792" class="Symbol">(</a><a id="2793" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="2809" href="Categories.Adjoint.Monadic.Properties.html#2594" class="Bound">A</a><a id="2810" class="Symbol">)</a> <a id="2812" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2819" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="2825" class="Symbol">;</a> <a id="2827" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="2840" class="Symbol">=</a> <a id="2842" class="Symbol">λ</a> <a id="2844" class="Symbol">{</a><a id="2845" href="Categories.Adjoint.Monadic.Properties.html#2845" class="Bound">X</a><a id="2846" class="Symbol">}</a> <a id="2848" class="Symbol">{</a><a id="2849" href="Categories.Adjoint.Monadic.Properties.html#2849" class="Bound">Y</a><a id="2850" class="Symbol">}</a> <a id="2852" class="Symbol">{</a><a id="2853" href="Categories.Adjoint.Monadic.Properties.html#2853" class="Bound">Z</a><a id="2854" class="Symbol">}</a> <a id="2856" class="Symbol">{</a><a id="2857" href="Categories.Adjoint.Monadic.Properties.html#2857" class="Bound">f</a><a id="2858" class="Symbol">}</a> <a id="2860" class="Symbol">{</a><a id="2861" href="Categories.Adjoint.Monadic.Properties.html#2861" class="Bound">g</a><a id="2862" class="Symbol">}</a> <a id="2864" class="Symbol">→</a> <a id="2866" href="Categories.Category.Core.html#3005" class="Function">⟺</a> <a id="2868" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="2870" href="Categories.Diagram.Coequalizer.html#652" class="Function">unique</a> <a id="2877" class="Symbol">(</a><a id="2878" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="2894" href="Categories.Adjoint.Monadic.Properties.html#2845" class="Bound">X</a><a id="2895" class="Symbol">)</a> <a id="2897" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="2899" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="2911" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="2913" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2915" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="2919" class="Symbol">(</a><a id="2920" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="2936" href="Categories.Adjoint.Monadic.Properties.html#2853" class="Bound">Z</a><a id="2937" class="Symbol">)</a> <a id="2939" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2941" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2946" class="Symbol">(</a><a id="2947" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="2949" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2951" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="2963" href="Categories.Adjoint.Monadic.Properties.html#2861" class="Bound">g</a> <a id="2965" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2967" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="2979" href="Categories.Adjoint.Monadic.Properties.html#2857" class="Bound">f</a> <a id="2981" href="Categories.Category.html#700" class="Function Operator">]</a><a id="2982" class="Symbol">)</a> <a id="2984" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3015" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3018" href="Categories.Category.Core.html#1706" class="Function">𝒟.∘-resp-≈ʳ</a> <a id="3030" href="Categories.Functor.Core.html#565" class="Function">L.homomorphism</a> <a id="3045" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="3047" href="Categories.Category.Core.html#1004" class="Function">𝒟.sym-assoc</a> <a id="3059" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="3067" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="3069" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3071" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="3073" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3075" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="3079" class="Symbol">(</a><a id="3080" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3096" href="Categories.Adjoint.Monadic.Properties.html#2853" class="Bound">Z</a><a id="3097" class="Symbol">)</a> <a id="3099" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3101" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="3106" class="Symbol">(</a><a id="3107" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="3119" href="Categories.Adjoint.Monadic.Properties.html#2861" class="Bound">g</a><a id="3120" class="Symbol">)</a> <a id="3122" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3124" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3126" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="3131" class="Symbol">(</a><a id="3132" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="3144" href="Categories.Adjoint.Monadic.Properties.html#2857" class="Bound">f</a><a id="3145" class="Symbol">)</a> <a id="3147" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3171" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3174" href="Categories.Diagram.Coequalizer.html#576" class="Function">universal</a> <a id="3184" class="Symbol">(</a><a id="3185" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3201" href="Categories.Adjoint.Monadic.Properties.html#2849" class="Bound">Y</a><a id="3202" class="Symbol">)</a> <a id="3204" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="3212" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="3220" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="3222" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3224" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="3226" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3228" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="3239" class="Symbol">(</a><a id="3240" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3256" href="Categories.Adjoint.Monadic.Properties.html#2849" class="Bound">Y</a><a id="3257" class="Symbol">)</a> <a id="3259" class="Symbol">_</a> <a id="3261" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3263" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="3267" class="Symbol">(</a><a id="3268" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3284" href="Categories.Adjoint.Monadic.Properties.html#2849" class="Bound">Y</a><a id="3285" class="Symbol">)</a> <a id="3287" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3289" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3291" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="3296" class="Symbol">(</a><a id="3297" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="3309" href="Categories.Adjoint.Monadic.Properties.html#2857" class="Bound">f</a><a id="3310" class="Symbol">)</a> <a id="3312" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3325" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3328" href="Categories.Morphism.Reasoning.Core.html#3392" class="Function">extendˡ</a> <a id="3336" class="Symbol">(</a><a id="3337" href="Categories.Diagram.Coequalizer.html#576" class="Function">universal</a> <a id="3347" class="Symbol">(</a><a id="3348" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3364" href="Categories.Adjoint.Monadic.Properties.html#2845" class="Bound">X</a><a id="3365" class="Symbol">))</a> <a id="3368" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="3376" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="3378" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3380" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="3382" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3384" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="3395" class="Symbol">(</a><a id="3396" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3412" href="Categories.Adjoint.Monadic.Properties.html#2849" class="Bound">Y</a><a id="3413" class="Symbol">)</a> <a id="3415" class="Symbol">_</a> <a id="3417" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3419" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="3430" class="Symbol">(</a><a id="3431" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3447" href="Categories.Adjoint.Monadic.Properties.html#2845" class="Bound">X</a><a id="3448" class="Symbol">)</a> <a id="3450" class="Symbol">_</a> <a id="3452" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3454" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3456" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="3460" class="Symbol">(</a><a id="3461" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3477" href="Categories.Adjoint.Monadic.Properties.html#2845" class="Bound">X</a><a id="3478" class="Symbol">)</a> <a id="3480" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3482" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="3488" class="Symbol">;</a> <a id="3490" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="3499" class="Symbol">=</a> <a id="3501" class="Symbol">λ</a> <a id="3503" class="Symbol">{</a><a id="3504" href="Categories.Adjoint.Monadic.Properties.html#3504" class="Bound">A</a><a id="3505" class="Symbol">}</a> <a id="3507" class="Symbol">{</a><a id="3508" href="Categories.Adjoint.Monadic.Properties.html#3508" class="Bound">B</a><a id="3509" class="Symbol">}</a> <a id="3511" class="Symbol">{</a><a id="3512" href="Categories.Adjoint.Monadic.Properties.html#3512" class="Bound">f</a><a id="3513" class="Symbol">}</a> <a id="3515" class="Symbol">{</a><a id="3516" href="Categories.Adjoint.Monadic.Properties.html#3516" class="Bound">g</a><a id="3517" class="Symbol">}</a> <a id="3519" href="Categories.Adjoint.Monadic.Properties.html#3519" class="Bound">eq</a> <a id="3522" class="Symbol">→</a> <a id="3524" href="Categories.Diagram.Coequalizer.html#652" class="Function">unique</a> <a id="3531" class="Symbol">(</a><a id="3532" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3548" href="Categories.Adjoint.Monadic.Properties.html#3504" class="Bound">A</a><a id="3549" class="Symbol">)</a> <a id="3551" href="Function.Base.html#1928" class="Function Operator">$</a> <a id="3553" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="3565" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="3567" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3569" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="3573" class="Symbol">(</a><a id="3574" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3590" href="Categories.Adjoint.Monadic.Properties.html#3508" class="Bound">B</a><a id="3591" class="Symbol">)</a> <a id="3593" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3595" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="3600" class="Symbol">(</a><a id="3601" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="3613" href="Categories.Adjoint.Monadic.Properties.html#3516" class="Bound">g</a><a id="3614" class="Symbol">)</a> <a id="3616" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3629" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3632" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="3640" href="Categories.Functor.Core.html#696" class="Function">L.F-resp-≈</a> <a id="3651" class="Symbol">(</a><a id="3652" href="Relation.Binary.Structures.html#1603" class="Function">𝒞.Equiv.sym</a> <a id="3664" href="Categories.Adjoint.Monadic.Properties.html#3519" class="Bound">eq</a><a id="3666" class="Symbol">)</a> <a id="3668" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="3676" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="3678" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3680" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="3684" class="Symbol">(</a><a id="3685" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3701" href="Categories.Adjoint.Monadic.Properties.html#3508" class="Bound">B</a><a id="3702" class="Symbol">)</a> <a id="3704" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3706" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="3711" class="Symbol">(</a><a id="3712" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="3724" href="Categories.Adjoint.Monadic.Properties.html#3512" class="Bound">f</a><a id="3725" class="Symbol">)</a> <a id="3727" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3740" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3743" href="Categories.Diagram.Coequalizer.html#576" class="Function">universal</a> <a id="3753" class="Symbol">(</a><a id="3754" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3770" href="Categories.Adjoint.Monadic.Properties.html#3504" class="Bound">A</a><a id="3771" class="Symbol">)</a> <a id="3773" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="3781" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="3783" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3785" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="3796" class="Symbol">(</a><a id="3797" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3813" href="Categories.Adjoint.Monadic.Properties.html#3504" class="Bound">A</a><a id="3814" class="Symbol">)</a> <a id="3816" class="Symbol">_</a> <a id="3818" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3820" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="3824" class="Symbol">(</a><a id="3825" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="3841" href="Categories.Adjoint.Monadic.Properties.html#3504" class="Bound">A</a><a id="3842" class="Symbol">)</a> <a id="3844" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3846" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="3852" class="Symbol">}</a>
|
||
<a id="3858" class="Keyword">where</a>
|
||
<a id="3870" class="Keyword">open</a> <a id="3875" href="Categories.Category.Core.html#2462" class="Module">𝒟.HomReasoning</a>
|
||
<a id="3896" class="Keyword">open</a> <a id="3901" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="3904" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a>
|
||
|
||
<a id="3909" class="Keyword">private</a>
|
||
<a id="3921" class="Keyword">module</a> <a id="3928" href="Categories.Adjoint.Monadic.Properties.html#3928" class="Module">Comparison⁻¹</a> <a id="3941" class="Symbol">=</a> <a id="3943" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="3951" href="Categories.Adjoint.Monadic.Properties.html#1502" class="Function">Comparison⁻¹</a>
|
||
|
||
<a id="3967" href="Categories.Adjoint.Monadic.Properties.html#3967" class="Function">Comparison⁻¹⊣Comparison</a> <a id="3991" class="Symbol">:</a> <a id="3993" href="Categories.Adjoint.Monadic.Properties.html#1502" class="Function">Comparison⁻¹</a> <a id="4006" href="Categories.Adjoint.html#7972" class="Function Operator">⊣</a> <a id="4008" href="Categories.Adjoint.Monadic.Properties.html#1123" class="Function">Comparison</a>
|
||
<a id="4021" href="Categories.Adjoint.html#1519" class="Field">Adjoint.unit</a> <a id="4034" href="Categories.Adjoint.Monadic.Properties.html#3967" class="Function">Comparison⁻¹⊣Comparison</a> <a id="4058" class="Symbol">=</a> <a id="4060" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="4069" class="Keyword">record</a>
|
||
<a id="4080" class="Symbol">{</a> <a id="4082" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="4084" class="Symbol">=</a> <a id="4086" class="Symbol">λ</a> <a id="4088" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a> <a id="4090" class="Symbol">→</a> <a id="4092" class="Keyword">record</a>
|
||
<a id="4105" class="Symbol">{</a> <a id="4107" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">arr</a> <a id="4111" class="Symbol">=</a> <a id="4113" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="4115" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="4117" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4122" class="Symbol">(</a><a id="4123" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="4127" class="Symbol">(</a><a id="4128" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="4144" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4145" class="Symbol">))</a> <a id="4148" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="4150" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="4165" class="Symbol">(</a><a id="4166" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="4175" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4176" class="Symbol">)</a> <a id="4178" href="Categories.Category.html#700" class="Function Operator">]</a>
|
||
<a id="4186" class="Symbol">;</a> <a id="4188" href="Categories.Category.Construction.EilenbergMoore.html#688" class="Field">commute</a> <a id="4196" class="Symbol">=</a> <a id="4198" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="4212" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="4214" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="4216" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="4218" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="4220" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4225" class="Symbol">(</a><a id="4226" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="4230" class="Symbol">(</a><a id="4231" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="4247" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4248" class="Symbol">))</a> <a id="4251" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="4253" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="4268" class="Symbol">(</a><a id="4269" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="4278" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4279" class="Symbol">)</a> <a id="4281" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="4283" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="4285" href="Categories.Category.Construction.EilenbergMoore.html#431" class="Field">Module.action</a> <a id="4299" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a> <a id="4301" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="4356" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4359" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="4365" class="Symbol">(</a><a id="4366" href="Categories.NaturalTransformation.Core.html#827" class="Function">adjoint.unit.commute</a> <a id="4387" class="Symbol">(</a><a id="4388" href="Categories.Category.Construction.EilenbergMoore.html#431" class="Field">Module.action</a> <a id="4402" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4403" class="Symbol">))</a> <a id="4406" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="4416" class="Comment">-- It would be nice to have a reasoning combinator doing this "⟺ homomorphism ... homomorphism" pattern</a>
|
||
<a id="4528" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="4530" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="4532" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4537" class="Symbol">(</a><a id="4538" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="4542" class="Symbol">(</a><a id="4543" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="4559" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4560" class="Symbol">))</a> <a id="4563" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="4565" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="4567" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="4569" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4574" class="Symbol">(</a><a id="4575" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="4580" class="Symbol">(</a><a id="4581" href="Categories.Category.Construction.EilenbergMoore.html#431" class="Field">Module.action</a> <a id="4595" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4596" class="Symbol">))</a> <a id="4599" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="4601" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="4616" class="Symbol">(</a><a id="4617" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="4622" class="Symbol">(</a><a id="4623" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="4628" class="Symbol">(</a><a id="4629" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="4638" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4639" class="Symbol">)))</a> <a id="4643" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="4645" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="4672" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4675" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="4681" class="Symbol">(</a><a id="4682" href="Categories.Category.Core.html#3005" class="Function">⟺</a> <a id="4684" href="Categories.Functor.Core.html#565" class="Function">R.homomorphism</a><a id="4698" class="Symbol">)</a> <a id="4700" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="4710" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="4712" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="4714" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4719" class="Symbol">(</a><a id="4720" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="4722" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="4724" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="4728" class="Symbol">(</a><a id="4729" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="4745" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4746" class="Symbol">)</a> <a id="4748" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="4750" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="4755" class="Symbol">(</a><a id="4756" href="Categories.Category.Construction.EilenbergMoore.html#431" class="Field">Module.action</a> <a id="4770" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4771" class="Symbol">)</a> <a id="4773" href="Categories.Category.html#700" class="Function Operator">]</a><a id="4774" class="Symbol">)</a> <a id="4776" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="4778" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="4793" class="Symbol">(</a><a id="4794" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="4799" class="Symbol">(</a><a id="4800" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="4805" class="Symbol">(</a><a id="4806" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="4815" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4816" class="Symbol">)))</a> <a id="4820" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="4854" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4857" class="Symbol">(</a><a id="4858" href="Categories.Functor.Core.html#696" class="Function">R.F-resp-≈</a> <a id="4869" class="Symbol">(</a><a id="4870" href="Categories.Diagram.Coequalizer.html#488" class="Function">equality</a> <a id="4879" class="Symbol">(</a><a id="4880" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="4896" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4897" class="Symbol">))</a> <a id="4900" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="4907" class="Symbol">)</a> <a id="4909" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="4919" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="4921" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="4923" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4928" class="Symbol">(</a><a id="4929" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="4931" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="4933" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="4937" class="Symbol">(</a><a id="4938" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="4954" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4955" class="Symbol">)</a> <a id="4957" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="4959" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.counit.η</a> <a id="4976" class="Symbol">(</a><a id="4977" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="4982" class="Symbol">(</a><a id="4983" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="4992" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="4993" class="Symbol">))</a> <a id="4996" href="Categories.Category.html#700" class="Function Operator">]</a><a id="4997" class="Symbol">)</a> <a id="4999" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="5001" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="5016" class="Symbol">(</a><a id="5017" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="5022" class="Symbol">(</a><a id="5023" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="5028" class="Symbol">(</a><a id="5029" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="5038" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="5039" class="Symbol">)))</a> <a id="5043" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="5063" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5066" class="Symbol">(</a><a id="5067" href="Categories.Functor.Core.html#565" class="Function">R.homomorphism</a> <a id="5082" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="5089" class="Symbol">)</a> <a id="5091" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="5101" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="5103" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="5105" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="5107" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="5109" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="5114" class="Symbol">(</a><a id="5115" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="5119" class="Symbol">(</a><a id="5120" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="5136" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="5137" class="Symbol">))</a> <a id="5140" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="5142" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="5147" class="Symbol">(</a><a id="5148" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.counit.η</a> <a id="5165" class="Symbol">(</a><a id="5166" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="5171" class="Symbol">(</a><a id="5172" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="5181" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="5182" class="Symbol">)))</a> <a id="5186" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="5188" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="5190" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="5205" class="Symbol">(</a><a id="5206" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="5211" class="Symbol">(</a><a id="5212" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="5217" class="Symbol">(</a><a id="5218" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="5227" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="5228" class="Symbol">)))</a> <a id="5232" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="5245" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5248" href="Categories.Morphism.Reasoning.Core.html#6665" class="Function">cancelʳ</a> <a id="5256" href="Categories.Adjoint.html#1788" class="Field">adjoint.zag</a> <a id="5268" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="5278" class="Comment">-- FIXME Use something like cancel here</a>
|
||
<a id="5326" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="5331" class="Symbol">(</a><a id="5332" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="5336" class="Symbol">(</a><a id="5337" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="5353" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="5354" class="Symbol">))</a> <a id="5470" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="5474" href="Categories.Functor.Core.html#696" class="Function">R.F-resp-≈</a> <a id="5485" class="Symbol">(</a><a id="5486" href="Categories.Category.Core.html#1145" class="Function">𝒟.identityʳ</a><a id="5497" class="Symbol">)</a> <a id="5499" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
||
<a id="5509" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="5514" class="Symbol">(</a><a id="5515" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="5517" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="5519" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="5523" class="Symbol">(</a><a id="5524" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="5540" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="5541" class="Symbol">)</a> <a id="5543" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="5545" href="Categories.Category.Core.html#630" class="Function">𝒟.id</a> <a id="5550" href="Categories.Category.html#700" class="Function Operator">]</a><a id="5551" class="Symbol">)</a> <a id="5653" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="5657" href="Categories.Functor.Core.html#696" class="Function">R.F-resp-≈</a> <a id="5668" class="Symbol">(</a><a id="5669" href="Categories.Category.Core.html#1706" class="Function">𝒟.∘-resp-≈ʳ</a> <a id="5681" href="Categories.Adjoint.html#1715" class="Field">adjoint.zig</a><a id="5692" class="Symbol">)</a> <a id="5694" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
||
<a id="5704" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="5709" class="Symbol">(</a><a id="5710" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="5712" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="5714" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="5718" class="Symbol">(</a><a id="5719" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="5735" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="5736" class="Symbol">)</a> <a id="5738" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="5740" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="5742" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="5744" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.counit.η</a> <a id="5761" class="Symbol">(</a><a id="5762" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="5767" class="Symbol">(</a><a id="5768" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="5777" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="5778" class="Symbol">))</a> <a id="5781" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="5783" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="5788" class="Symbol">(</a><a id="5789" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="5804" class="Symbol">(</a><a id="5805" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="5814" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="5815" class="Symbol">))</a> <a id="5818" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="5820" href="Categories.Category.html#700" class="Function Operator">]</a><a id="5821" class="Symbol">)</a> <a id="5848" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5851" href="Categories.Functor.Core.html#696" class="Function">R.F-resp-≈</a> <a id="5862" class="Symbol">(</a><a id="5863" href="Categories.Morphism.Reasoning.Core.html#3587" class="Function">MR.extendʳ</a> <a id="5874" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="5876" class="Symbol">(</a><a id="5877" href="Categories.NaturalTransformation.Core.html#1043" class="Function">adjoint.counit.sym-commute</a> <a id="5904" class="Symbol">(</a><a id="5905" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="5909" class="Symbol">(</a><a id="5910" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="5926" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="5927" class="Symbol">))))</a> <a id="5932" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="5942" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="5947" class="Symbol">(</a><a id="5948" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="5950" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="5952" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.counit.η</a> <a id="5969" class="Symbol">(</a><a id="5970" href="Categories.Diagram.Coequalizer.html#1948" class="Field">obj</a> <a id="5974" class="Symbol">(</a><a id="5975" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="5991" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="5992" class="Symbol">))</a> <a id="5995" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="5997" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="5999" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="6001" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="6006" class="Symbol">(</a><a id="6007" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="6012" class="Symbol">(</a><a id="6013" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="6017" class="Symbol">(</a><a id="6018" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="6034" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="6035" class="Symbol">)))</a> <a id="6039" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="6041" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="6046" class="Symbol">(</a><a id="6047" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="6062" class="Symbol">(</a><a id="6063" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="6072" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="6073" class="Symbol">))</a> <a id="6076" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="6078" href="Categories.Category.html#700" class="Function Operator">]</a><a id="6079" class="Symbol">)</a> <a id="6086" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="6090" href="Categories.Functor.Core.html#696" class="Function">R.F-resp-≈</a> <a id="6101" class="Symbol">(</a><a id="6102" href="Categories.Category.Core.html#1706" class="Function">𝒟.∘-resp-≈ʳ</a> <a id="6114" href="Categories.Functor.Core.html#565" class="Function">L.homomorphism</a><a id="6128" class="Symbol">)</a> <a id="6130" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
||
<a id="6140" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="6145" class="Symbol">(</a><a id="6146" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="6148" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="6150" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.counit.η</a> <a id="6167" class="Symbol">(</a><a id="6168" href="Categories.Diagram.Coequalizer.html#1948" class="Field">obj</a> <a id="6172" class="Symbol">(</a><a id="6173" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="6189" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="6190" class="Symbol">))</a> <a id="6193" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="6195" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="6200" class="Symbol">(</a><a id="6201" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="6203" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="6205" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="6210" class="Symbol">(</a><a id="6211" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="6215" class="Symbol">(</a><a id="6216" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="6232" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="6233" class="Symbol">))</a> <a id="6236" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="6238" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="6253" class="Symbol">(</a><a id="6254" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="6263" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="6264" class="Symbol">)</a><a id="6265" href="Categories.Category.html#700" class="Function Operator">]</a><a id="6266" class="Symbol">)</a><a id="6267" href="Categories.Category.html#700" class="Function Operator">]</a><a id="6268" class="Symbol">)</a> <a id="6284" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6287" href="Categories.Functor.Core.html#565" class="Function">R.homomorphism</a> <a id="6302" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="6312" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="6314" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="6316" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="6321" class="Symbol">(</a><a id="6322" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.counit.η</a> <a id="6339" class="Symbol">(</a><a id="6340" href="Categories.Diagram.Coequalizer.html#1948" class="Field">obj</a> <a id="6344" class="Symbol">(</a><a id="6345" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="6361" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="6362" class="Symbol">)))</a> <a id="6366" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="6368" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="6373" class="Symbol">(</a><a id="6374" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="6379" class="Symbol">(</a><a id="6380" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="6382" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="6384" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="6389" class="Symbol">(</a><a id="6390" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="6394" class="Symbol">(</a><a id="6395" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="6411" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="6412" class="Symbol">))</a> <a id="6415" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="6417" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="6432" class="Symbol">(</a><a id="6433" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="6442" href="Categories.Adjoint.Monadic.Properties.html#4088" class="Bound">M</a><a id="6443" class="Symbol">)</a><a id="6444" href="Categories.Category.html#700" class="Function Operator">]</a><a id="6445" class="Symbol">))</a> <a id="6448" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="6456" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="6464" class="Symbol">}</a>
|
||
<a id="6470" class="Symbol">;</a> <a id="6472" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="6480" class="Symbol">=</a> <a id="6482" class="Symbol">λ</a> <a id="6484" class="Symbol">{</a><a id="6485" href="Categories.Adjoint.Monadic.Properties.html#6485" class="Bound">M</a><a id="6486" class="Symbol">}</a> <a id="6488" class="Symbol">{</a><a id="6489" href="Categories.Adjoint.Monadic.Properties.html#6489" class="Bound">N</a><a id="6490" class="Symbol">}</a> <a id="6492" href="Categories.Adjoint.Monadic.Properties.html#6492" class="Bound">f</a> <a id="6494" class="Symbol">→</a> <a id="6496" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="6508" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="6510" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="6512" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="6514" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="6516" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="6521" class="Symbol">(</a><a id="6522" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="6526" class="Symbol">(</a><a id="6527" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="6543" href="Categories.Adjoint.Monadic.Properties.html#6489" class="Bound">N</a><a id="6544" class="Symbol">))</a> <a id="6547" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="6549" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="6564" class="Symbol">(</a><a id="6565" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="6574" href="Categories.Adjoint.Monadic.Properties.html#6489" class="Bound">N</a><a id="6575" class="Symbol">)</a> <a id="6577" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="6579" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="6581" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="6593" href="Categories.Adjoint.Monadic.Properties.html#6492" class="Bound">f</a> <a id="6595" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="6623" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6626" href="Categories.Morphism.Reasoning.Core.html#3392" class="Function">extendˡ</a> <a id="6634" class="Symbol">(</a><a id="6635" href="Categories.NaturalTransformation.Core.html#827" class="Function">adjoint.unit.commute</a> <a id="6656" class="Symbol">(</a><a id="6657" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="6669" href="Categories.Adjoint.Monadic.Properties.html#6492" class="Bound">f</a><a id="6670" class="Symbol">))</a> <a id="6673" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="6681" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="6683" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="6685" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="6687" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="6689" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="6694" class="Symbol">(</a><a id="6695" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="6699" class="Symbol">(</a><a id="6700" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="6716" href="Categories.Adjoint.Monadic.Properties.html#6489" class="Bound">N</a><a id="6717" class="Symbol">))</a> <a id="6720" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="6722" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="6727" class="Symbol">(</a><a id="6728" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="6733" class="Symbol">(</a><a id="6734" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="6746" href="Categories.Adjoint.Monadic.Properties.html#6492" class="Bound">f</a><a id="6747" class="Symbol">))</a> <a id="6750" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="6752" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="6754" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="6769" class="Symbol">(</a><a id="6770" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="6779" href="Categories.Adjoint.Monadic.Properties.html#6485" class="Bound">M</a><a id="6780" class="Symbol">)</a> <a id="6782" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="6796" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="6800" href="Categories.Functor.Core.html#565" class="Function">R.homomorphism</a> <a id="6815" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="6823" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
||
<a id="6831" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="6833" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="6835" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="6840" class="Symbol">(</a><a id="6841" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="6843" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="6845" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="6849" class="Symbol">(</a><a id="6850" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="6866" href="Categories.Adjoint.Monadic.Properties.html#6489" class="Bound">N</a><a id="6867" class="Symbol">)</a> <a id="6869" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="6871" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="6876" class="Symbol">(</a><a id="6877" href="Categories.Category.Construction.EilenbergMoore.html#664" class="Field">Module⇒.arr</a> <a id="6889" href="Categories.Adjoint.Monadic.Properties.html#6492" class="Bound">f</a><a id="6890" class="Symbol">)</a> <a id="6892" href="Categories.Category.html#700" class="Function Operator">]</a><a id="6893" class="Symbol">)</a> <a id="6895" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="6897" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="6912" class="Symbol">(</a><a id="6913" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="6922" href="Categories.Adjoint.Monadic.Properties.html#6485" class="Bound">M</a><a id="6923" class="Symbol">)</a> <a id="6925" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="6946" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6949" href="Categories.Functor.Core.html#696" class="Function">R.F-resp-≈</a> <a id="6960" class="Symbol">(</a><a id="6961" href="Categories.Diagram.Coequalizer.html#576" class="Function">universal</a> <a id="6971" class="Symbol">(</a><a id="6972" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="6988" href="Categories.Adjoint.Monadic.Properties.html#6485" class="Bound">M</a><a id="6989" class="Symbol">))</a> <a id="6992" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="7000" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="7008" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="7010" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="7012" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="7017" class="Symbol">(</a><a id="7018" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="7020" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="7022" class="Symbol">(</a><a id="7023" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="7034" class="Symbol">(</a><a id="7035" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="7051" href="Categories.Adjoint.Monadic.Properties.html#6485" class="Bound">M</a><a id="7052" class="Symbol">)</a> <a id="7054" class="Symbol">_)</a> <a id="7057" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="7059" class="Symbol">(</a><a id="7060" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="7064" class="Symbol">(</a><a id="7065" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="7081" href="Categories.Adjoint.Monadic.Properties.html#6485" class="Bound">M</a><a id="7082" class="Symbol">))</a> <a id="7085" href="Categories.Category.html#700" class="Function Operator">]</a><a id="7086" class="Symbol">)</a> <a id="7088" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="7090" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="7105" class="Symbol">(</a><a id="7106" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="7115" href="Categories.Adjoint.Monadic.Properties.html#6485" class="Bound">M</a><a id="7116" class="Symbol">)</a> <a id="7118" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="7123" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7126" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="7132" href="Categories.Functor.Core.html#565" class="Function">R.homomorphism</a> <a id="7147" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="7155" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="7157" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="7159" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="7164" class="Symbol">(</a><a id="7165" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="7176" class="Symbol">(</a><a id="7177" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="7193" href="Categories.Adjoint.Monadic.Properties.html#6485" class="Bound">M</a><a id="7194" class="Symbol">)</a> <a id="7196" class="Symbol">_)</a> <a id="7199" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="7201" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="7203" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="7205" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="7210" class="Symbol">(</a><a id="7211" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="7215" class="Symbol">(</a><a id="7216" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="7232" href="Categories.Adjoint.Monadic.Properties.html#6485" class="Bound">M</a><a id="7233" class="Symbol">))</a> <a id="7236" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="7238" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="7253" class="Symbol">(</a><a id="7254" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="7263" href="Categories.Adjoint.Monadic.Properties.html#6485" class="Bound">M</a><a id="7264" class="Symbol">)</a> <a id="7266" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="7268" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="7270" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="7276" class="Symbol">}</a>
|
||
<a id="7282" class="Keyword">where</a>
|
||
<a id="7294" class="Keyword">open</a> <a id="7299" href="Categories.Category.Core.html#2462" class="Module">𝒞.HomReasoning</a>
|
||
<a id="7320" class="Keyword">open</a> <a id="7325" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="7328" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a>
|
||
<a id="7332" href="Categories.Adjoint.html#1567" class="Field">Adjoint.counit</a> <a id="7347" href="Categories.Adjoint.Monadic.Properties.html#3967" class="Function">Comparison⁻¹⊣Comparison</a> <a id="7371" class="Symbol">=</a> <a id="7373" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="7382" class="Keyword">record</a>
|
||
<a id="7393" class="Symbol">{</a> <a id="7395" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="7397" class="Symbol">=</a> <a id="7399" class="Symbol">λ</a> <a id="7401" href="Categories.Adjoint.Monadic.Properties.html#7401" class="Bound">X</a> <a id="7403" class="Symbol">→</a> <a id="7405" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="7416" class="Symbol">(</a><a id="7417" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="7433" class="Symbol">(</a><a id="7434" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="7448" href="Categories.Adjoint.Monadic.Properties.html#7401" class="Bound">X</a><a id="7449" class="Symbol">))</a> <a id="7452" class="Symbol">(</a><a id="7453" href="Categories.NaturalTransformation.Core.html#827" class="Function">adjoint.counit.commute</a> <a id="7476" class="Symbol">(</a><a id="7477" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.counit.η</a> <a id="7494" href="Categories.Adjoint.Monadic.Properties.html#7401" class="Bound">X</a><a id="7495" class="Symbol">))</a>
|
||
<a id="7502" class="Symbol">;</a> <a id="7504" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="7512" class="Symbol">=</a> <a id="7514" class="Symbol">λ</a> <a id="7516" class="Symbol">{</a><a id="7517" href="Categories.Adjoint.Monadic.Properties.html#7517" class="Bound">X</a><a id="7518" class="Symbol">}</a> <a id="7520" class="Symbol">{</a><a id="7521" href="Categories.Adjoint.Monadic.Properties.html#7521" class="Bound">Y</a><a id="7522" class="Symbol">}</a> <a id="7524" href="Categories.Adjoint.Monadic.Properties.html#7524" class="Bound">f</a> <a id="7526" class="Symbol">→</a> <a id="7528" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="7540" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="7542" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="7544" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="7555" class="Symbol">(</a><a id="7556" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="7572" class="Symbol">(</a><a id="7573" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="7587" href="Categories.Adjoint.Monadic.Properties.html#7521" class="Bound">Y</a><a id="7588" class="Symbol">))</a> <a id="7591" class="Symbol">_</a> <a id="7593" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="7595" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="7606" class="Symbol">(</a><a id="7607" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="7623" class="Symbol">(</a><a id="7624" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="7638" href="Categories.Adjoint.Monadic.Properties.html#7517" class="Bound">X</a><a id="7639" class="Symbol">))</a> <a id="7642" class="Symbol">_</a> <a id="7644" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="7647" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7650" href="Categories.Diagram.Coequalizer.html#652" class="Function">unique</a> <a id="7657" class="Symbol">(</a><a id="7658" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="7674" class="Symbol">(</a><a id="7675" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="7689" href="Categories.Adjoint.Monadic.Properties.html#7517" class="Bound">X</a><a id="7690" class="Symbol">))</a> <a id="7693" class="Symbol">(</a><a id="7694" href="Categories.NaturalTransformation.Core.html#1043" class="Function">adjoint.counit.sym-commute</a> <a id="7721" href="Categories.Adjoint.Monadic.Properties.html#7524" class="Bound">f</a> <a id="7723" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="7725" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="7731" class="Symbol">(</a><a id="7732" href="Categories.Diagram.Coequalizer.html#576" class="Function">universal</a> <a id="7742" class="Symbol">(</a><a id="7743" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="7759" class="Symbol">(</a><a id="7760" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="7774" href="Categories.Adjoint.Monadic.Properties.html#7521" class="Bound">Y</a><a id="7775" class="Symbol">)))</a> <a id="7779" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="7781" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="7787" class="Symbol">(</a><a id="7788" href="Categories.Diagram.Coequalizer.html#576" class="Function">universal</a> <a id="7798" class="Symbol">(</a><a id="7799" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="7815" class="Symbol">(</a><a id="7816" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="7830" href="Categories.Adjoint.Monadic.Properties.html#7517" class="Bound">X</a><a id="7831" class="Symbol">))))</a> <a id="7836" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="7844" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="7855" class="Symbol">(</a><a id="7856" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="7872" class="Symbol">(</a><a id="7873" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="7887" href="Categories.Adjoint.Monadic.Properties.html#7517" class="Bound">X</a><a id="7888" class="Symbol">))</a> <a id="7891" class="Symbol">(</a><a id="7892" href="Categories.Morphism.Reasoning.Core.html#3392" class="Function">extendˡ</a> <a id="7900" class="Symbol">(</a><a id="7901" href="Categories.NaturalTransformation.Core.html#827" class="Function">adjoint.counit.commute</a> <a id="7924" class="Symbol">(</a><a id="7925" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.counit.η</a> <a id="7942" href="Categories.Adjoint.Monadic.Properties.html#7517" class="Bound">X</a><a id="7943" class="Symbol">)))</a> <a id="7951" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="7955" href="Categories.Diagram.Coequalizer.html#652" class="Function">unique</a> <a id="7962" class="Symbol">(</a><a id="7963" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="7979" class="Symbol">(</a><a id="7980" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="7994" href="Categories.Adjoint.Monadic.Properties.html#7517" class="Bound">X</a><a id="7995" class="Symbol">))</a> <a id="7998" class="Symbol">(</a><a id="7999" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="8005" class="Symbol">(</a><a id="8006" href="Categories.Diagram.Coequalizer.html#576" class="Function">universal</a> <a id="8016" class="Symbol">(</a><a id="8017" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="8033" class="Symbol">(</a><a id="8034" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="8048" href="Categories.Adjoint.Monadic.Properties.html#7517" class="Bound">X</a><a id="8049" class="Symbol">))))</a> <a id="8054" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
||
<a id="8062" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="8064" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="8066" href="Categories.Adjoint.Monadic.Properties.html#7524" class="Bound">f</a> <a id="8068" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="8070" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="8081" class="Symbol">(</a><a id="8082" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="8098" class="Symbol">(</a><a id="8099" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="8113" href="Categories.Adjoint.Monadic.Properties.html#7517" class="Bound">X</a><a id="8114" class="Symbol">))</a> <a id="8117" class="Symbol">_</a> <a id="8119" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="8169" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="8175" class="Symbol">}</a>
|
||
<a id="8181" class="Keyword">where</a>
|
||
<a id="8193" class="Keyword">open</a> <a id="8198" href="Categories.Category.Core.html#2462" class="Module">𝒟.HomReasoning</a>
|
||
<a id="8219" class="Keyword">open</a> <a id="8224" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="8227" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a>
|
||
<a id="8231" href="Categories.Adjoint.html#1715" class="Field">Adjoint.zig</a> <a id="8243" href="Categories.Adjoint.Monadic.Properties.html#3967" class="Function">Comparison⁻¹⊣Comparison</a> <a id="8267" class="Symbol">{</a><a id="8268" href="Categories.Adjoint.Monadic.Properties.html#8268" class="Bound">X</a><a id="8269" class="Symbol">}</a> <a id="8271" class="Symbol">=</a> <a id="8273" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="8283" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="8285" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="8287" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="8298" class="Symbol">(</a><a id="8299" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="8315" class="Symbol">(</a><a id="8316" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="8330" class="Symbol">(</a><a id="8331" href="Categories.Functor.Core.html#432" class="Function">Comparison⁻¹.F₀</a> <a id="8347" href="Categories.Adjoint.Monadic.Properties.html#8268" class="Bound">X</a><a id="8348" class="Symbol">)))</a> <a id="8352" class="Symbol">_</a> <a id="8354" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="8356" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="8367" class="Symbol">(</a><a id="8368" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="8384" href="Categories.Adjoint.Monadic.Properties.html#8268" class="Bound">X</a><a id="8385" class="Symbol">)</a> <a id="8387" class="Symbol">_</a> <a id="8389" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="8391" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="8394" href="Categories.Diagram.Coequalizer.html#652" class="Function">unique</a> <a id="8401" class="Symbol">(</a><a id="8402" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="8418" href="Categories.Adjoint.Monadic.Properties.html#8268" class="Bound">X</a><a id="8419" class="Symbol">)</a> <a id="8421" class="Symbol">(</a><a id="8422" href="Categories.Category.Core.html#3005" class="Function">⟺</a> <a id="8424" href="Categories.Adjoint.html#2072" class="Function">adjoint.RLadjunct≈id</a> <a id="8445" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="8447" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="8453" class="Symbol">(</a><a id="8454" href="Categories.Diagram.Coequalizer.html#576" class="Function">universal</a> <a id="8464" class="Symbol">(</a><a id="8465" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="8481" class="Symbol">(</a><a id="8482" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="8496" class="Symbol">(</a><a id="8497" href="Categories.Functor.Core.html#432" class="Function">Comparison⁻¹.F₀</a> <a id="8513" href="Categories.Adjoint.Monadic.Properties.html#8268" class="Bound">X</a><a id="8514" class="Symbol">))))</a> <a id="8519" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="8521" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="8527" class="Symbol">(</a><a id="8528" href="Categories.Diagram.Coequalizer.html#576" class="Function">universal</a> <a id="8538" class="Symbol">(</a><a id="8539" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="8555" href="Categories.Adjoint.Monadic.Properties.html#8268" class="Bound">X</a><a id="8556" class="Symbol">)))</a> <a id="8560" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="8566" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="8577" class="Symbol">(</a><a id="8578" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="8594" href="Categories.Adjoint.Monadic.Properties.html#8268" class="Bound">X</a><a id="8595" class="Symbol">)</a> <a id="8597" class="Symbol">{</a><a id="8598" class="Argument">h</a> <a id="8600" class="Symbol">=</a> <a id="8602" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="8606" class="Symbol">(</a><a id="8607" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="8623" href="Categories.Adjoint.Monadic.Properties.html#8268" class="Bound">X</a><a id="8624" class="Symbol">)}</a> <a id="8627" class="Symbol">(</a><a id="8628" href="Categories.Diagram.Coequalizer.html#488" class="Function">equality</a> <a id="8637" class="Symbol">(</a><a id="8638" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="8654" href="Categories.Adjoint.Monadic.Properties.html#8268" class="Bound">X</a><a id="8655" class="Symbol">))</a> <a id="8674" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="8678" href="Categories.Diagram.Coequalizer.html#652" class="Function">unique</a> <a id="8685" class="Symbol">(</a><a id="8686" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="8702" href="Categories.Adjoint.Monadic.Properties.html#8268" class="Bound">X</a><a id="8703" class="Symbol">)</a> <a id="8705" class="Symbol">(</a><a id="8706" href="Categories.Category.Core.html#3005" class="Function">⟺</a> <a id="8708" href="Categories.Category.Core.html#1096" class="Function">𝒟.identityˡ</a><a id="8719" class="Symbol">)</a> <a id="8721" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
||
<a id="8727" href="Categories.Category.Core.html#630" class="Function">𝒟.id</a> <a id="8835" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="8841" class="Keyword">where</a>
|
||
<a id="8853" class="Keyword">open</a> <a id="8858" href="Categories.Category.Core.html#2462" class="Module">𝒟.HomReasoning</a>
|
||
<a id="8879" class="Keyword">open</a> <a id="8884" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="8887" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a>
|
||
<a id="8891" href="Categories.Adjoint.html#1788" class="Field">Adjoint.zag</a> <a id="8903" href="Categories.Adjoint.Monadic.Properties.html#3967" class="Function">Comparison⁻¹⊣Comparison</a> <a id="8927" class="Symbol">{</a><a id="8928" href="Categories.Adjoint.Monadic.Properties.html#8928" class="Bound">A</a><a id="8929" class="Symbol">}</a> <a id="8931" class="Symbol">=</a> <a id="8933" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="8943" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="8945" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="8947" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="8952" class="Symbol">(</a><a id="8953" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="8964" class="Symbol">(</a><a id="8965" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="8981" class="Symbol">(</a><a id="8982" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="8996" href="Categories.Adjoint.Monadic.Properties.html#8928" class="Bound">A</a><a id="8997" class="Symbol">))</a> <a id="9000" class="Symbol">_)</a> <a id="9003" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="9006" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="9008" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="9010" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="9015" class="Symbol">(</a><a id="9016" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="9020" class="Symbol">(</a><a id="9021" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="9037" class="Symbol">(</a><a id="9038" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="9052" href="Categories.Adjoint.Monadic.Properties.html#8928" class="Bound">A</a><a id="9053" class="Symbol">)))</a> <a id="9057" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="9059" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="9074" class="Symbol">(</a><a id="9075" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="9084" class="Symbol">(</a><a id="9085" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="9099" href="Categories.Adjoint.Monadic.Properties.html#8928" class="Bound">A</a><a id="9100" class="Symbol">))</a> <a id="9103" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="9105" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="9107" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="9110" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="9116" class="Symbol">(</a><a id="9117" href="Categories.Category.Core.html#3005" class="Function">⟺</a> <a id="9119" href="Categories.Functor.Core.html#565" class="Function">R.homomorphism</a><a id="9133" class="Symbol">)</a> <a id="9135" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="9141" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="9143" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="9145" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="9150" class="Symbol">(</a><a id="9151" href="Categories.Adjoint.Monadic.Properties.html#237" class="Bound">𝒟</a> <a id="9153" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="9155" href="Categories.Diagram.Coequalizer.html#523" class="Function">coequalize</a> <a id="9166" class="Symbol">(</a><a id="9167" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="9183" class="Symbol">(</a><a id="9184" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="9198" href="Categories.Adjoint.Monadic.Properties.html#8928" class="Bound">A</a><a id="9199" class="Symbol">))</a> <a id="9202" class="Symbol">_</a> <a id="9204" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="9206" href="Categories.Diagram.Coequalizer.html#1963" class="Field">arr</a> <a id="9210" class="Symbol">(</a><a id="9211" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="9227" class="Symbol">(</a><a id="9228" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="9242" href="Categories.Adjoint.Monadic.Properties.html#8928" class="Bound">A</a><a id="9243" class="Symbol">))</a> <a id="9246" href="Categories.Category.html#700" class="Function Operator">]</a><a id="9247" class="Symbol">)</a> <a id="9249" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="9251" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="9266" class="Symbol">(</a><a id="9267" href="Categories.Category.Construction.EilenbergMoore.html#412" class="Field">Module.A</a> <a id="9276" class="Symbol">(</a><a id="9277" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="9291" href="Categories.Adjoint.Monadic.Properties.html#8928" class="Bound">A</a><a id="9292" class="Symbol">))</a> <a id="9295" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="9305" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="9309" href="Categories.Functor.Core.html#696" class="Function">R.F-resp-≈</a> <a id="9320" class="Symbol">(</a><a id="9321" href="Categories.Diagram.Coequalizer.html#576" class="Function">universal</a> <a id="9331" class="Symbol">(</a><a id="9332" href="Categories.Adjoint.Monadic.Properties.html#1360" class="Bound">has-coequalizer</a> <a id="9348" class="Symbol">(</a><a id="9349" href="Categories.Functor.Core.html#432" class="Function">Comparison.F₀</a> <a id="9363" href="Categories.Adjoint.Monadic.Properties.html#8928" class="Bound">A</a><a id="9364" class="Symbol">)))</a> <a id="9368" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="9376" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
||
<a id="9382" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a> <a id="9384" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="9386" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="9391" class="Symbol">(</a><a id="9392" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.counit.η</a> <a id="9409" href="Categories.Adjoint.Monadic.Properties.html#8928" class="Bound">A</a><a id="9410" class="Symbol">)</a> <a id="9412" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="9414" href="Categories.NaturalTransformation.Core.html#783" class="Function">adjoint.unit.η</a> <a id="9429" class="Symbol">(</a><a id="9430" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="9435" href="Categories.Adjoint.Monadic.Properties.html#8928" class="Bound">A</a><a id="9436" class="Symbol">)</a> <a id="9438" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="9546" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="9549" href="Categories.Adjoint.html#1788" class="Field">adjoint.zag</a> <a id="9561" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="9567" href="Categories.Category.Core.html#630" class="Function">𝒞.id</a> <a id="9731" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="9737" class="Keyword">where</a>
|
||
<a id="9749" class="Keyword">open</a> <a id="9754" href="Categories.Category.Core.html#2462" class="Module">𝒞.HomReasoning</a>
|
||
<a id="9775" class="Keyword">open</a> <a id="9780" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="9783" href="Categories.Adjoint.Monadic.Properties.html#216" class="Bound">𝒞</a>
|
||
</pre></body></html> |