bsc-leon-vatthauer/public/Categories.Adjoint.RAPL.html

120 lines
42 KiB
HTML
Raw Normal View History

2023-08-19 16:11:22 +02:00
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.Adjoint.RAPL</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.Category.html" class="Module">Categories.Category</a>
<a id="69" class="Keyword">open</a> <a id="74" class="Keyword">import</a> <a id="81" href="Categories.Functor.html" class="Module">Categories.Functor</a>
<a id="100" class="Keyword">open</a> <a id="105" class="Keyword">import</a> <a id="112" href="Categories.Adjoint.html" class="Module">Categories.Adjoint</a>
<a id="132" class="Comment">-- Right Adjoint Preserves Limits.</a>
<a id="167" class="Keyword">module</a> <a id="174" href="Categories.Adjoint.RAPL.html" class="Module">Categories.Adjoint.RAPL</a> <a id="198" class="Symbol">{</a><a id="199" href="Categories.Adjoint.RAPL.html#199" class="Bound">o</a> <a id="201" href="Categories.Adjoint.RAPL.html#201" class="Bound">o</a> <a id="204" href="Categories.Adjoint.RAPL.html#204" class="Bound"></a> <a id="206" href="Categories.Adjoint.RAPL.html#206" class="Bound"></a> <a id="209" href="Categories.Adjoint.RAPL.html#209" class="Bound">e</a> <a id="211" href="Categories.Adjoint.RAPL.html#211" class="Bound">e</a><a id="213" class="Symbol">}</a> <a id="215" class="Symbol">{</a><a id="216" href="Categories.Adjoint.RAPL.html#216" class="Bound">C</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.RAPL.html#199" class="Bound">o</a> <a id="231" href="Categories.Adjoint.RAPL.html#204" class="Bound"></a> <a id="233" href="Categories.Adjoint.RAPL.html#209" class="Bound">e</a><a id="234" class="Symbol">}</a> <a id="236" class="Symbol">{</a><a id="237" href="Categories.Adjoint.RAPL.html#237" class="Bound">D</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.RAPL.html#201" class="Bound">o</a> <a id="253" href="Categories.Adjoint.RAPL.html#206" class="Bound"></a> <a id="256" href="Categories.Adjoint.RAPL.html#211" class="Bound">e</a><a id="258" class="Symbol">}</a>
<a id="262" class="Symbol">{</a><a id="263" href="Categories.Adjoint.RAPL.html#263" class="Bound">L</a> <a id="265" class="Symbol">:</a> <a id="267" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="275" href="Categories.Adjoint.RAPL.html#216" class="Bound">C</a> <a id="277" href="Categories.Adjoint.RAPL.html#237" class="Bound">D</a><a id="278" class="Symbol">}</a> <a id="280" class="Symbol">{</a><a id="281" href="Categories.Adjoint.RAPL.html#281" class="Bound">R</a> <a id="283" class="Symbol">:</a> <a id="285" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="293" href="Categories.Adjoint.RAPL.html#237" class="Bound">D</a> <a id="295" href="Categories.Adjoint.RAPL.html#216" class="Bound">C</a><a id="296" class="Symbol">}</a> <a id="298" class="Symbol">(</a><a id="299" href="Categories.Adjoint.RAPL.html#299" class="Bound">L⊣R</a> <a id="303" class="Symbol">:</a> <a id="305" href="Categories.Adjoint.RAPL.html#263" class="Bound">L</a> <a id="307" href="Categories.Adjoint.html#7972" class="Function Operator"></a> <a id="309" href="Categories.Adjoint.RAPL.html#281" class="Bound">R</a><a id="310" class="Symbol">)</a> <a id="312" class="Keyword">where</a>
<a id="319" class="Keyword">open</a> <a id="324" class="Keyword">import</a> <a id="331" href="Categories.Functor.Properties.html" class="Module">Categories.Functor.Properties</a>
<a id="362" class="Keyword">import</a> <a id="369" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="399" class="Symbol">as</a> <a id="402" class="Module">MR</a>
<a id="405" class="Keyword">import</a> <a id="412" href="Categories.Diagram.Limit.html" class="Module">Categories.Diagram.Limit</a> <a id="437" class="Symbol">as</a> <a id="440" class="Module">Lim</a>
<a id="444" class="Keyword">import</a> <a id="451" href="Categories.Category.Construction.Cones.html" class="Module">Categories.Category.Construction.Cones</a> <a id="490" class="Symbol">as</a> <a id="493" class="Module">Con</a>
<a id="498" class="Keyword">private</a>
<a id="508" class="Keyword">module</a> <a id="C"></a><a id="515" href="Categories.Adjoint.RAPL.html#515" class="Module">C</a> <a id="517" class="Symbol">=</a> <a id="519" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="528" href="Categories.Adjoint.RAPL.html#216" class="Bound">C</a>
<a id="532" class="Keyword">module</a> <a id="D"></a><a id="539" href="Categories.Adjoint.RAPL.html#539" class="Module">D</a> <a id="541" class="Symbol">=</a> <a id="543" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="552" href="Categories.Adjoint.RAPL.html#237" class="Bound">D</a>
<a id="556" class="Keyword">module</a> <a id="L"></a><a id="563" href="Categories.Adjoint.RAPL.html#563" class="Module">L</a> <a id="565" class="Symbol">=</a> <a id="567" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="575" href="Categories.Adjoint.RAPL.html#263" class="Bound">L</a>
<a id="579" class="Keyword">module</a> <a id="R"></a><a id="586" href="Categories.Adjoint.RAPL.html#586" class="Module">R</a> <a id="588" class="Symbol">=</a> <a id="590" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="598" href="Categories.Adjoint.RAPL.html#281" class="Bound">R</a>
<a id="601" class="Keyword">open</a> <a id="606" href="Categories.Adjoint.html#1306" class="Module">Adjoint</a> <a id="614" href="Categories.Adjoint.RAPL.html#299" class="Bound">L⊣R</a>
<a id="619" class="Keyword">module</a> <a id="626" href="Categories.Adjoint.RAPL.html#626" class="Module">_</a> <a id="628" class="Symbol">{</a><a id="629" href="Categories.Adjoint.RAPL.html#629" class="Bound">o″</a> <a id="632" href="Categories.Adjoint.RAPL.html#632" class="Bound">ℓ″</a> <a id="635" href="Categories.Adjoint.RAPL.html#635" class="Bound">e″</a><a id="637" class="Symbol">}</a> <a id="639" class="Symbol">{</a><a id="640" href="Categories.Adjoint.RAPL.html#640" class="Bound">J</a> <a id="642" class="Symbol">:</a> <a id="644" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="653" href="Categories.Adjoint.RAPL.html#629" class="Bound">o″</a> <a id="656" href="Categories.Adjoint.RAPL.html#632" class="Bound">ℓ″</a> <a id="659" href="Categories.Adjoint.RAPL.html#635" class="Bound">e″</a><a id="661" class="Symbol">}</a> <a id="663" class="Symbol">(</a><a id="664" href="Categories.Adjoint.RAPL.html#664" class="Bound">F</a> <a id="666" class="Symbol">:</a> <a id="668" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="676" href="Categories.Adjoint.RAPL.html#640" class="Bound">J</a> <a id="678" href="Categories.Adjoint.RAPL.html#237" class="Bound">D</a><a id="679" class="Symbol">)</a> <a id="681" class="Keyword">where</a>
<a id="689" class="Keyword">private</a>
<a id="701" class="Keyword">module</a> <a id="708" href="Categories.Adjoint.RAPL.html#708" class="Module">F</a> <a id="710" class="Symbol">=</a> <a id="712" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="720" href="Categories.Adjoint.RAPL.html#664" class="Bound">F</a>
<a id="726" class="Keyword">module</a> <a id="733" href="Categories.Adjoint.RAPL.html#733" class="Module">LF</a> <a id="736" class="Symbol">=</a> <a id="738" href="Categories.Diagram.Limit.html" class="Module">Lim</a> <a id="742" href="Categories.Adjoint.RAPL.html#664" class="Bound">F</a>
<a id="748" class="Keyword">module</a> <a id="755" href="Categories.Adjoint.RAPL.html#755" class="Module">CF</a> <a id="758" class="Symbol">=</a> <a id="760" href="Categories.Category.Construction.Cones.html" class="Module">Con</a> <a id="764" href="Categories.Adjoint.RAPL.html#664" class="Bound">F</a>
<a id="771" href="Categories.Adjoint.RAPL.html#771" class="Function">RF</a> <a id="774" class="Symbol">=</a> <a id="776" href="Categories.Adjoint.RAPL.html#281" class="Bound">R</a> <a id="778" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="781" href="Categories.Adjoint.RAPL.html#664" class="Bound">F</a>
<a id="788" class="Keyword">module</a> <a id="795" href="Categories.Adjoint.RAPL.html#795" class="Module">LRF</a> <a id="799" class="Symbol">=</a> <a id="801" href="Categories.Diagram.Limit.html" class="Module">Lim</a> <a id="805" href="Categories.Adjoint.RAPL.html#771" class="Function">RF</a>
<a id="812" class="Keyword">module</a> <a id="819" href="Categories.Adjoint.RAPL.html#819" class="Module">CRF</a> <a id="823" class="Symbol">=</a> <a id="825" href="Categories.Category.Construction.Cones.html" class="Module">Con</a> <a id="829" href="Categories.Adjoint.RAPL.html#771" class="Function">RF</a>
<a id="835" href="Categories.Adjoint.RAPL.html#835" class="Function">rapl</a> <a id="840" class="Symbol">:</a> <a id="842" href="Categories.Diagram.Limit.html#934" class="Record">LF.Limit</a> <a id="851" class="Symbol"></a> <a id="853" href="Categories.Diagram.Limit.html#934" class="Record">LRF.Limit</a>
<a id="865" href="Categories.Adjoint.RAPL.html#835" class="Function">rapl</a> <a id="870" href="Categories.Adjoint.RAPL.html#870" class="Bound">lim</a> <a id="874" class="Symbol">=</a> <a id="876" class="Keyword">record</a>
<a id="887" class="Symbol">{</a> <a id="889" href="Categories.Diagram.Limit.html#991" class="Field">terminal</a> <a id="898" class="Symbol">=</a> <a id="900" class="Keyword">record</a>
<a id="913" class="Symbol">{</a> <a id="915" href="Categories.Object.Terminal.html#905" class="Field"></a> <a id="929" class="Symbol">=</a> <a id="931" href="Categories.Adjoint.RAPL.html#1117" class="Function"></a>
<a id="939" class="Symbol">;</a> <a id="941" href="Categories.Object.Terminal.html#917" class="Field">-is-terminal</a> <a id="955" class="Symbol">=</a> <a id="957" class="Keyword">record</a>
<a id="972" class="Symbol">{</a> <a id="974" href="Categories.Object.Terminal.html#577" class="Field">!</a> <a id="983" class="Symbol">=</a> <a id="985" href="Categories.Adjoint.RAPL.html#2129" class="Function">!</a>
<a id="995" class="Symbol">;</a> <a id="997" href="Categories.Object.Terminal.html#605" class="Field">!-unique</a> <a id="1006" class="Symbol">=</a> <a id="1008" href="Categories.Adjoint.RAPL.html#2893" class="Function">!-unique</a>
<a id="1025" class="Symbol">}</a>
<a id="1033" class="Symbol">}</a>
<a id="1039" class="Symbol">}</a>
<a id="1045" class="Keyword">where</a> <a id="1051" class="Keyword">module</a> <a id="1058" href="Categories.Adjoint.RAPL.html#1058" class="Module">lim</a> <a id="1062" class="Symbol">=</a> <a id="1064" href="Categories.Diagram.Limit.html#934" class="Module">LF.Limit</a> <a id="1073" href="Categories.Adjoint.RAPL.html#870" class="Bound">lim</a>
<a id="1087" class="Keyword">open</a> <a id="1092" href="Categories.Adjoint.RAPL.html#1058" class="Module">lim</a>
<a id="1117" href="Categories.Adjoint.RAPL.html#1117" class="Function"></a> <a id="1119" class="Symbol">:</a> <a id="1121" href="Categories.Diagram.Cone.html#526" class="Record">CRF.Cone</a>
<a id="1140" href="Categories.Adjoint.RAPL.html#1117" class="Function"></a> <a id="1142" class="Symbol">=</a> <a id="1144" class="Keyword">record</a>
<a id="1163" class="Symbol">{</a> <a id="1165" href="Categories.Diagram.Cone.html#578" class="Field">N</a> <a id="1170" class="Symbol">=</a> <a id="1172" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="1177" href="Categories.Diagram.Limit.html#1158" class="Function">apex</a>
<a id="1194" class="Symbol">;</a> <a id="1196" href="Categories.Diagram.Cone.html#592" class="Field">apex</a> <a id="1201" class="Symbol">=</a> <a id="1203" class="Keyword">record</a>
<a id="1224" class="Symbol">{</a> <a id="1226" href="Categories.Diagram.Cone.html#415" class="Field">ψ</a> <a id="1234" class="Symbol">=</a> <a id="1236" class="Symbol">λ</a> <a id="1238" href="Categories.Adjoint.RAPL.html#1238" class="Bound">X</a> <a id="1240" class="Symbol"></a> <a id="1242" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="1247" class="Symbol">(</a><a id="1248" href="Categories.Diagram.Limit.html#1169" class="Function">proj</a> <a id="1253" href="Categories.Adjoint.RAPL.html#1238" class="Bound">X</a><a id="1254" class="Symbol">)</a>
<a id="1270" class="Symbol">;</a> <a id="1272" href="Categories.Diagram.Cone.html#463" class="Field">commute</a> <a id="1280" class="Symbol">=</a> <a id="1282" class="Symbol">λ</a> <a id="1284" href="Categories.Adjoint.RAPL.html#1284" class="Bound">f</a> <a id="1286" class="Symbol"></a> <a id="1288" href="Categories.Functor.Properties.html#2426" class="Function Operator">[</a> <a id="1290" href="Categories.Adjoint.RAPL.html#281" class="Bound">R</a> <a id="1292" href="Categories.Functor.Properties.html#2426" class="Function Operator">]-resp-∘</a> <a id="1301" class="Symbol">(</a><a id="1302" href="Categories.Diagram.Limit.html#1186" class="Function">limit-commute</a> <a id="1316" href="Categories.Adjoint.RAPL.html#1284" class="Bound">f</a><a id="1317" class="Symbol">)</a>
<a id="1333" class="Symbol">}</a>
<a id="1347" class="Symbol">}</a>
<a id="1372" href="Categories.Adjoint.RAPL.html#1372" class="Function">K</a> <a id="1375" class="Symbol">:</a> <a id="1377" href="Categories.Diagram.Cone.html#526" class="Record">CRF.Cone</a> <a id="1386" class="Symbol"></a> <a id="1388" href="Categories.Diagram.Cone.html#526" class="Record">CF.Cone</a>
<a id="1406" href="Categories.Adjoint.RAPL.html#1372" class="Function">K</a> <a id="1409" href="Categories.Adjoint.RAPL.html#1409" class="Bound">K</a> <a id="1411" class="Symbol">=</a> <a id="1413" class="Keyword">record</a>
<a id="1432" class="Symbol">{</a> <a id="1434" href="Categories.Diagram.Cone.html#578" class="Field">N</a> <a id="1439" class="Symbol">=</a> <a id="1441" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="1446" href="Categories.Diagram.Cone.html#578" class="Field">K.N</a>
<a id="1462" class="Symbol">;</a> <a id="1464" href="Categories.Diagram.Cone.html#592" class="Field">apex</a> <a id="1469" class="Symbol">=</a> <a id="1471" class="Keyword">record</a>
<a id="1492" class="Symbol">{</a> <a id="1494" href="Categories.Diagram.Cone.html#415" class="Field">ψ</a> <a id="1502" class="Symbol">=</a> <a id="1504" class="Symbol">λ</a> <a id="1506" href="Categories.Adjoint.RAPL.html#1506" class="Bound">X</a> <a id="1508" class="Symbol"></a> <a id="1510" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="1519" class="Symbol">(</a><a id="1520" href="Categories.Functor.Core.html#432" class="Field">F.F₀</a> <a id="1525" href="Categories.Adjoint.RAPL.html#1506" class="Bound">X</a><a id="1526" class="Symbol">)</a> <a id="1528" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="1532" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="1537" class="Symbol">(</a><a id="1538" href="Categories.Diagram.Cone.html#415" class="Function">K.ψ</a> <a id="1542" href="Categories.Adjoint.RAPL.html#1506" class="Bound">X</a><a id="1543" class="Symbol">)</a>
<a id="1559" class="Symbol">;</a> <a id="1561" href="Categories.Diagram.Cone.html#463" class="Field">commute</a> <a id="1569" class="Symbol">=</a> <a id="1571" class="Symbol">λ</a> <a id="1573" class="Symbol">{</a><a id="1574" href="Categories.Adjoint.RAPL.html#1574" class="Bound">X</a> <a id="1576" href="Categories.Adjoint.RAPL.html#1576" class="Bound">Y</a><a id="1577" class="Symbol">}</a> <a id="1579" href="Categories.Adjoint.RAPL.html#1579" class="Bound">f</a> <a id="1581" class="Symbol"></a> <a id="1583" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="1605" href="Categories.Functor.Core.html#455" class="Field">F.F₁</a> <a id="1610" href="Categories.Adjoint.RAPL.html#1579" class="Bound">f</a> <a id="1612" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="1616" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="1625" class="Symbol">(</a><a id="1626" href="Categories.Functor.Core.html#432" class="Field">F.F₀</a> <a id="1631" href="Categories.Adjoint.RAPL.html#1574" class="Bound">X</a><a id="1632" class="Symbol">)</a> <a id="1634" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="1638" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="1643" class="Symbol">(</a><a id="1644" href="Categories.Diagram.Cone.html#415" class="Function">K.ψ</a> <a id="1648" href="Categories.Adjoint.RAPL.html#1574" class="Bound">X</a><a id="1649" class="Symbol">)</a>
<a id="1669" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="1673" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="1679" class="Symbol">(</a><a id="1680" href="Categories.NaturalTransformation.Core.html#827" class="Function">counit.commute</a> <a id="1695" class="Symbol">(</a><a id="1696" href="Categories.Functor.Core.html#455" class="Field">F.F₁</a> <a id="1701" href="Categories.Adjoint.RAPL.html#1579" class="Bound">f</a><a id="1702" class="Symbol">))</a> <a id="1705" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="1723" class="Symbol">(</a><a id="1724" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="1733" class="Symbol">(</a><a id="1734" href="Categories.Functor.Core.html#432" class="Field">F.F₀</a> <a id="1739" href="Categories.Adjoint.RAPL.html#1576" class="Bound">Y</a><a id="1740" class="Symbol">)</a> <a id="1742" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="1746" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="1751" class="Symbol">(</a><a id="1752" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="1757" class="Symbol">(</a><a id="1758" href="Categories.Functor.Core.html#455" class="Field">F.F₁</a> <a id="1763" href="Categories.Adjoint.RAPL.html#1579" class="Bound">f</a><a id="1764" class="Symbol">)))</a> <a id="1768" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="1772" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="1777" class="Symbol">(</a><a id="1778" href="Categories.Diagram.Cone.html#415" class="Function">K.ψ</a> <a id="1782" href="Categories.Adjoint.RAPL.html#1574" class="Bound">X</a><a id="1783" class="Symbol">)</a>
<a id="1803" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1806" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="1812" class="Symbol">(</a><a id="1813" href="Categories.Functor.Properties.html#2426" class="Function Operator">[</a> <a id="1815" href="Categories.Adjoint.RAPL.html#263" class="Bound">L</a> <a id="1817" href="Categories.Functor.Properties.html#2426" class="Function Operator">]-resp-∘</a> <a id="1826" class="Symbol">(</a><a id="1827" href="Categories.Diagram.Cone.html#463" class="Function">K.commute</a> <a id="1837" href="Categories.Adjoint.RAPL.html#1579" class="Bound">f</a><a id="1838" class="Symbol">))</a> <a id="1841" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1859" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="1868" class="Symbol">(</a><a id="1869" href="Categories.Functor.Core.html#432" class="Field">F.F₀</a> <a id="1874" href="Categories.Adjoint.RAPL.html#1576" class="Bound">Y</a><a id="1875" class="Symbol">)</a> <a id="1877" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="1881" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="1886" class="Symbol">(</a><a id="1887" href="Categories.Diagram.Cone.html#415" class="Function">K.ψ</a> <a id="1891" href="Categories.Adjoint.RAPL.html#1576" class="Bound">Y</a><a id="1892" class="Symbol">)</a>
<a id="1912" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="1928" class="Symbol">}</a>
<a id="1942" class="Symbol">}</a>
<a id="1956" class="Keyword">where</a> <a id="1962" class="Keyword">module</a> <a id="1969" href="Categories.Adjoint.RAPL.html#1969" class="Module">K</a> <a id="1971" class="Symbol">=</a> <a id="1973" href="Categories.Diagram.Cone.html#526" class="Module">CRF.Cone</a> <a id="1982" href="Categories.Adjoint.RAPL.html#1409" class="Bound">K</a>
<a id="2002" class="Keyword">open</a> <a id="2007" href="Categories.Category.Core.html#2462" class="Module">D.HomReasoning</a>
<a id="2040" class="Keyword">open</a> <a id="2045" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="2048" href="Categories.Adjoint.RAPL.html#237" class="Bound">D</a>
<a id="2079" class="Keyword">module</a> <a id="2086" href="Categories.Adjoint.RAPL.html#2086" class="Module">K</a> <a id="2089" href="Categories.Adjoint.RAPL.html#2089" class="Bound">K</a> <a id="2091" class="Symbol">=</a> <a id="2093" href="Categories.Diagram.Cone.html#526" class="Module">CF.Cone</a> <a id="2101" class="Symbol">(</a><a id="2102" href="Categories.Adjoint.RAPL.html#1372" class="Function">K</a> <a id="2105" href="Categories.Adjoint.RAPL.html#2089" class="Bound">K</a><a id="2106" class="Symbol">)</a>
<a id="2129" href="Categories.Adjoint.RAPL.html#2129" class="Function">!</a> <a id="2131" class="Symbol">:</a> <a id="2133" class="Symbol"></a> <a id="2135" class="Symbol">{</a><a id="2136" href="Categories.Adjoint.RAPL.html#2136" class="Bound">K</a> <a id="2138" class="Symbol">:</a> <a id="2140" href="Categories.Diagram.Cone.html#526" class="Record">CRF.Cone</a><a id="2148" class="Symbol">}</a> <a id="2150" class="Symbol"></a> <a id="2152" href="Categories.Category.Construction.Cones.html#632" class="Function">CRF.Cones</a> <a id="2162" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="2164" href="Categories.Adjoint.RAPL.html#2136" class="Bound">K</a> <a id="2166" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="2168" href="Categories.Adjoint.RAPL.html#1117" class="Function"></a> <a id="2170" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="2182" href="Categories.Adjoint.RAPL.html#2129" class="Function">!</a> <a id="2184" class="Symbol">{</a><a id="2185" href="Categories.Adjoint.RAPL.html#2185" class="Bound">K</a><a id="2186" class="Symbol">}</a> <a id="2188" class="Symbol">=</a> <a id="2190" class="Keyword">record</a>
<a id="2209" class="Symbol">{</a> <a id="2211" href="Categories.Diagram.Cone.html#717" class="Field">arr</a> <a id="2219" class="Symbol">=</a> <a id="2221" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2226" class="Symbol">(</a><a id="2227" href="Categories.Diagram.Limit.html#1271" class="Function">rep</a> <a id="2231" class="Symbol">(</a><a id="2232" href="Categories.Adjoint.RAPL.html#1372" class="Function">K</a> <a id="2235" href="Categories.Adjoint.RAPL.html#2185" class="Bound">K</a><a id="2236" class="Symbol">))</a> <a id="2239" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2243" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="2250" href="Categories.Diagram.Cone.html#578" class="Field">K.N</a>
<a id="2266" class="Symbol">;</a> <a id="2268" href="Categories.Diagram.Cone.html#742" class="Field">commute</a> <a id="2276" class="Symbol">=</a> <a id="2278" href="Categories.Adjoint.RAPL.html#2359" class="Function">commute</a>
<a id="2299" class="Symbol">}</a>
<a id="2313" class="Keyword">where</a> <a id="2319" class="Keyword">module</a> <a id="2326" href="Categories.Adjoint.RAPL.html#2326" class="Module">K</a> <a id="2328" class="Symbol">=</a> <a id="2330" href="Categories.Diagram.Cone.html#526" class="Module">CRF.Cone</a> <a id="2339" href="Categories.Adjoint.RAPL.html#2185" class="Bound">K</a>
<a id="2359" href="Categories.Adjoint.RAPL.html#2359" class="Function">commute</a> <a id="2368" class="Symbol">:</a> <a id="2370" class="Symbol"></a> <a id="2372" class="Symbol">{</a><a id="2373" href="Categories.Adjoint.RAPL.html#2373" class="Bound">X</a><a id="2374" class="Symbol">}</a> <a id="2376" class="Symbol"></a> <a id="2378" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2383" class="Symbol">(</a><a id="2384" href="Categories.Diagram.Limit.html#1169" class="Function">proj</a> <a id="2389" href="Categories.Adjoint.RAPL.html#2373" class="Bound">X</a><a id="2390" class="Symbol">)</a> <a id="2392" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2396" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2401" class="Symbol">(</a><a id="2402" href="Categories.Diagram.Limit.html#1271" class="Function">rep</a> <a id="2406" class="Symbol">(</a><a id="2407" href="Categories.Adjoint.RAPL.html#1372" class="Function">K</a> <a id="2410" href="Categories.Adjoint.RAPL.html#2185" class="Bound">K</a><a id="2411" class="Symbol">))</a> <a id="2414" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2418" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="2425" href="Categories.Diagram.Cone.html#578" class="Field">K.N</a> <a id="2429" href="Categories.Category.Core.html#595" class="Function Operator">C.≈</a> <a id="2433" href="Categories.Diagram.Cone.html#415" class="Function">K.ψ</a> <a id="2437" href="Categories.Adjoint.RAPL.html#2373" class="Bound">X</a>
<a id="2457" href="Categories.Adjoint.RAPL.html#2359" class="Function">commute</a> <a id="2466" class="Symbol">{</a><a id="2467" href="Categories.Adjoint.RAPL.html#2467" class="Bound">X</a><a id="2468" class="Symbol">}</a> <a id="2470" class="Symbol">=</a> <a id="2472" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="2498" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2503" class="Symbol">(</a><a id="2504" href="Categories.Diagram.Limit.html#1169" class="Function">proj</a> <a id="2509" href="Categories.Adjoint.RAPL.html#2467" class="Bound">X</a><a id="2510" class="Symbol">)</a> <a id="2512" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2516" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2521" class="Symbol">(</a><a id="2522" href="Categories.Diagram.Limit.html#1271" class="Function">rep</a> <a id="2526" class="Symbol">(</a><a id="2527" href="Categories.Adjoint.RAPL.html#1372" class="Function">K</a> <a id="2530" href="Categories.Adjoint.RAPL.html#2185" class="Bound">K</a><a id="2531" class="Symbol">))</a> <a id="2534" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2538" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="2545" href="Categories.Diagram.Cone.html#578" class="Field">K.N</a>
<a id="2571" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2574" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="2580" class="Symbol">(</a><a id="2581" href="Categories.Functor.Properties.html#2426" class="Function Operator">[</a> <a id="2583" href="Categories.Adjoint.RAPL.html#281" class="Bound">R</a> <a id="2585" href="Categories.Functor.Properties.html#2426" class="Function Operator">]-resp-∘</a> <a id="2594" href="Categories.Diagram.Limit.html#1636" class="Function">commute</a><a id="2601" class="Symbol">)</a> <a id="2603" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2625" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2630" class="Symbol">(</a><a id="2631" href="Categories.Diagram.Cone.html#415" class="Function">K</a> <a id="2636" href="Categories.Adjoint.RAPL.html#2185" class="Bound">K</a> <a id="2638" href="Categories.Adjoint.RAPL.html#2467" class="Bound">X</a><a id="2639" class="Symbol">)</a> <a id="2641" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2645" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="2652" href="Categories.Diagram.Cone.html#578" class="Field">K.N</a>
<a id="2678" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2681" href="Categories.Adjoint.html#2579" class="Function">LRadjunct≈id</a> <a id="2694" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2716" href="Categories.Diagram.Cone.html#415" class="Function">K.ψ</a> <a id="2720" href="Categories.Adjoint.RAPL.html#2467" class="Bound">X</a>
<a id="2744" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="2766" class="Keyword">where</a> <a id="2772" class="Keyword">open</a> <a id="2777" href="Categories.Category.Core.html#2462" class="Module">C.HomReasoning</a>
<a id="2818" class="Keyword">open</a> <a id="2823" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="2826" href="Categories.Adjoint.RAPL.html#216" class="Bound">C</a>
<a id="2839" class="Keyword">module</a> <a id="2846" href="Categories.Adjoint.RAPL.html#2846" class="Module">!</a> <a id="2848" class="Symbol">{</a><a id="2849" href="Categories.Adjoint.RAPL.html#2849" class="Bound">K</a><a id="2850" class="Symbol">}</a> <a id="2852" class="Symbol">=</a> <a id="2854" href="Categories.Diagram.Cone.html#660" class="Module">CRF.Cone⇒</a> <a id="2864" class="Symbol">(</a><a id="2865" href="Categories.Adjoint.RAPL.html#2129" class="Function">!</a> <a id="2867" class="Symbol">{</a><a id="2868" href="Categories.Adjoint.RAPL.html#2849" class="Bound">K</a><a id="2869" class="Symbol">})</a>
<a id="2893" href="Categories.Adjoint.RAPL.html#2893" class="Function">!-unique</a> <a id="2902" class="Symbol">:</a> <a id="2904" class="Symbol"></a> <a id="2906" class="Symbol">{</a><a id="2907" href="Categories.Adjoint.RAPL.html#2907" class="Bound">K</a> <a id="2909" class="Symbol">:</a> <a id="2911" href="Categories.Diagram.Cone.html#526" class="Record">CRF.Cone</a><a id="2919" class="Symbol">}</a> <a id="2921" class="Symbol">(</a><a id="2922" href="Categories.Adjoint.RAPL.html#2922" class="Bound">f</a> <a id="2924" class="Symbol">:</a> <a id="2926" href="Categories.Category.Construction.Cones.html#632" class="Function">CRF.Cones</a> <a id="2936" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="2938" href="Categories.Adjoint.RAPL.html#2907" class="Bound">K</a> <a id="2940" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="2942" href="Categories.Adjoint.RAPL.html#1117" class="Function"></a> <a id="2944" href="Categories.Category.html#502" class="Function Operator">]</a><a id="2945" class="Symbol">)</a> <a id="2947" class="Symbol"></a> <a id="2949" href="Categories.Category.Construction.Cones.html#632" class="Function">CRF.Cones</a> <a id="2959" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="2961" href="Categories.Adjoint.RAPL.html#2129" class="Function">!</a> <a id="2963" href="Categories.Category.html#609" class="Function Operator"></a> <a id="2965" href="Categories.Adjoint.RAPL.html#2922" class="Bound">f</a> <a id="2967" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="2979" href="Categories.Adjoint.RAPL.html#2893" class="Function">!-unique</a> <a id="2988" class="Symbol">{</a><a id="2989" href="Categories.Adjoint.RAPL.html#2989" class="Bound">K</a><a id="2990" class="Symbol">}</a> <a id="2992" href="Categories.Adjoint.RAPL.html#2992" class="Bound">f</a> <a id="2994" class="Symbol">=</a>
<a id="3008" class="Keyword">let</a> <a id="3012" class="Keyword">open</a> <a id="3017" href="Categories.Category.Core.html#2462" class="Module">C.HomReasoning</a>
<a id="3048" class="Keyword">open</a> <a id="3053" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="3056" href="Categories.Adjoint.RAPL.html#216" class="Bound">C</a>
<a id="3071" class="Keyword">in</a> <a id="3074" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="3095" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="3100" class="Symbol">(</a><a id="3101" href="Categories.Diagram.Limit.html#1271" class="Function">rep</a> <a id="3105" class="Symbol">(</a><a id="3106" href="Categories.Adjoint.RAPL.html#1372" class="Function">K</a> <a id="3109" href="Categories.Adjoint.RAPL.html#2989" class="Bound">K</a><a id="3110" class="Symbol">))</a> <a id="3113" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3117" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="3124" href="Categories.Diagram.Cone.html#578" class="Function">K.N</a> <a id="3128" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3131" href="Categories.Functor.Core.html#696" class="Function">R.F-resp-≈</a> <a id="3142" class="Symbol">(</a><a id="3143" href="Categories.Object.Terminal.html#605" class="Function">terminal.!-unique</a> <a id="3161" href="Categories.Adjoint.RAPL.html#3409" class="Function">f</a><a id="3163" class="Symbol">)</a> <a id="3165" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="3173" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3190" href="Categories.Adjoint.html#1916" class="Function">Ladjunct</a> <a id="3199" class="Symbol">(</a><a id="3200" href="Categories.Adjoint.html#1993" class="Function">Radjunct</a> <a id="3209" href="Categories.Diagram.Cone.html#717" class="Field">f.arr</a><a id="3214" class="Symbol">)</a> <a id="3223" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3226" href="Categories.Adjoint.html#2579" class="Function">LRadjunct≈id</a> <a id="3239" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3256" href="Categories.Diagram.Cone.html#717" class="Field">f.arr</a> <a id="3289" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="3303" class="Keyword">where</a> <a id="3309" class="Keyword">module</a> <a id="3316" href="Categories.Adjoint.RAPL.html#3316" class="Module">K</a> <a id="3318" class="Symbol">=</a> <a id="3320" href="Categories.Diagram.Cone.html#526" class="Module">CRF.Cone</a> <a id="3329" href="Categories.Adjoint.RAPL.html#2989" class="Bound">K</a>
<a id="3349" class="Keyword">module</a> <a id="3356" href="Categories.Adjoint.RAPL.html#3356" class="Module">f</a> <a id="3358" class="Symbol">=</a> <a id="3360" href="Categories.Diagram.Cone.html#660" class="Module">CRF.Cone⇒</a> <a id="3370" href="Categories.Adjoint.RAPL.html#2992" class="Bound">f</a>
<a id="3409" href="Categories.Adjoint.RAPL.html#3409" class="Function">f</a> <a id="3412" class="Symbol">:</a> <a id="3414" href="Categories.Category.Construction.Cones.html#632" class="Function">CF.Cones</a> <a id="3423" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="3425" href="Categories.Adjoint.RAPL.html#1372" class="Function">K</a> <a id="3428" href="Categories.Adjoint.RAPL.html#2989" class="Bound">K</a> <a id="3430" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="3432" href="Categories.Diagram.Limit.html#1097" class="Function">limit</a> <a id="3438" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="3458" href="Categories.Adjoint.RAPL.html#3409" class="Function">f</a> <a id="3461" class="Symbol">=</a> <a id="3463" class="Keyword">record</a>
<a id="3490" class="Symbol">{</a> <a id="3492" href="Categories.Diagram.Cone.html#717" class="Field">arr</a> <a id="3500" class="Symbol">=</a> <a id="3502" href="Categories.Adjoint.html#1993" class="Function">Radjunct</a> <a id="3511" href="Categories.Diagram.Cone.html#717" class="Field">f.arr</a>
<a id="3537" class="Symbol">;</a> <a id="3539" href="Categories.Diagram.Cone.html#742" class="Field">commute</a> <a id="3547" class="Symbol">=</a> <a id="3549" class="Symbol">λ</a> <a id="3551" class="Symbol">{</a><a id="3552" href="Categories.Adjoint.RAPL.html#3552" class="Bound">X</a><a id="3553" class="Symbol">}</a> <a id="3555" class="Symbol"></a> <a id="3557" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="3585" href="Categories.Diagram.Limit.html#1169" class="Function">proj</a> <a id="3590" href="Categories.Adjoint.RAPL.html#3552" class="Bound">X</a> <a id="3592" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="3596" href="Categories.Adjoint.html#1993" class="Function">Radjunct</a> <a id="3605" href="Categories.Diagram.Cone.html#717" class="Field">f.arr</a> <a id="3645" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="3649" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="3655" class="Symbol">(</a><a id="3656" href="Categories.NaturalTransformation.Core.html#827" class="Function">counit.commute</a> <a id="3671" class="Symbol">(</a><a id="3672" href="Categories.Diagram.Limit.html#1169" class="Function">proj</a> <a id="3677" href="Categories.Adjoint.RAPL.html#3552" class="Bound">X</a><a id="3678" class="Symbol">))</a> <a id="3681" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="3705" class="Symbol">(</a><a id="3706" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="3715" class="Symbol">(</a><a id="3716" href="Categories.Functor.Core.html#432" class="Field">F.F₀</a> <a id="3721" href="Categories.Adjoint.RAPL.html#3552" class="Bound">X</a><a id="3722" class="Symbol">)</a> <a id="3724" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="3728" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="3733" class="Symbol">(</a><a id="3734" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="3739" class="Symbol">(</a><a id="3740" href="Categories.Diagram.Limit.html#1169" class="Function">proj</a> <a id="3745" href="Categories.Adjoint.RAPL.html#3552" class="Bound">X</a><a id="3746" class="Symbol">)))</a> <a id="3750" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="3754" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="3759" href="Categories.Diagram.Cone.html#717" class="Field">f.arr</a> <a id="3765" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="3769" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="3775" href="Categories.Functor.Core.html#565" class="Function">L.homomorphism</a> <a id="3790" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="3814" href="Categories.Adjoint.html#1993" class="Function">Radjunct</a> <a id="3823" class="Symbol">(</a><a id="3824" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="3829" class="Symbol">(</a><a id="3830" href="Categories.Diagram.Limit.html#1169" class="Function">proj</a> <a id="3835" href="Categories.Adjoint.RAPL.html#3552" class="Bound">X</a><a id="3836" class="Symbol">)</a> <a id="3838" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3842" href="Categories.Diagram.Cone.html#717" class="Field">f.arr</a><a id="3847" class="Symbol">)</a> <a id="3874" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3877" href="Categories.Adjoint.html#6375" class="Function">Radjunct-resp-≈</a> <a id="3893" href="Categories.Diagram.Cone.html#742" class="Field">f.commute</a> <a id="3903" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3927" href="Categories.Adjoint.html#1993" class="Function">Radjunct</a> <a id="3936" class="Symbol">(</a><a id="3937" href="Categories.Diagram.Cone.html#415" class="Function">K.ψ</a> <a id="3941" href="Categories.Adjoint.RAPL.html#3552" class="Bound">X</a><a id="3942" class="Symbol">)</a> <a id="3987" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="4009" class="Symbol">}</a>
<a id="4031" class="Keyword">where</a> <a id="4037" class="Keyword">open</a> <a id="4042" href="Categories.Category.Core.html#2462" class="Module">D.HomReasoning</a>
<a id="4083" class="Keyword">open</a> <a id="4088" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="4091" href="Categories.Adjoint.RAPL.html#237" class="Bound">D</a>
</pre></body></html>