bsc-leon-vatthauer/agda/bsc-thesis/Categories.Adjoint.html
2024-02-09 17:53:52 +01:00

223 lines
No EOL
100 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.Adjoint</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="36" class="Keyword">module</a> <a id="43" href="Categories.Adjoint.html" class="Module">Categories.Adjoint</a> <a id="62" class="Keyword">where</a>
<a id="69" class="Comment">-- Adjoints</a>
<a id="82" class="Keyword">open</a> <a id="87" class="Keyword">import</a> <a id="94" href="Level.html" class="Module">Level</a>
<a id="101" class="Keyword">open</a> <a id="106" class="Keyword">import</a> <a id="113" href="Data.Product.html" class="Module">Data.Product</a> <a id="126" class="Keyword">using</a> <a id="132" class="Symbol">(</a><a id="133" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="136" class="Symbol">;</a> <a id="138" href="Data.Product.Base.html#1618" class="Function Operator">_×_</a><a id="141" class="Symbol">)</a>
<a id="143" class="Keyword">open</a> <a id="148" class="Keyword">import</a> <a id="155" href="Function.html" class="Module">Function</a> <a id="164" class="Keyword">using</a> <a id="170" class="Symbol">(</a><a id="171" href="Function.Base.html#1974" class="Function Operator">_$_</a><a id="174" class="Symbol">)</a> <a id="176" class="Keyword">renaming</a> <a id="185" class="Symbol">(</a><a id="186" href="Function.Base.html#1115" class="Function Operator">_∘_</a> <a id="190" class="Symbol">to</a> <a id="193" class="Function Operator">_∙_</a><a id="196" class="Symbol">)</a>
<a id="198" class="Keyword">open</a> <a id="203" class="Keyword">import</a> <a id="210" href="Function.Bundles.html" class="Module">Function.Bundles</a> <a id="227" class="Keyword">using</a> <a id="233" class="Symbol">(</a><a id="234" href="Function.Bundles.html#7340" class="Record">Inverse</a><a id="241" class="Symbol">)</a>
<a id="243" class="Keyword">open</a> <a id="248" class="Keyword">import</a> <a id="255" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="271" class="Keyword">using</a> <a id="277" class="Symbol">(</a><a id="278" href="Relation.Binary.Core.html#896" class="Function">Rel</a><a id="281" class="Symbol">;</a> <a id="283" href="Relation.Binary.Structures.html#1550" class="Record">IsEquivalence</a><a id="296" class="Symbol">;</a> <a id="298" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a><a id="304" class="Symbol">)</a>
<a id="306" class="Keyword">open</a> <a id="311" class="Keyword">import</a> <a id="318" href="Relation.Binary.PropositionalEquality.html" class="Module">Relation.Binary.PropositionalEquality</a> <a id="356" class="Symbol">as</a> <a id="359" class="Module"></a> <a id="361" class="Keyword">using</a> <a id="367" class="Symbol">(</a><a id="368" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a><a id="371" class="Symbol">)</a>
<a id="374" class="Comment">-- be explicit in imports to &#39;see&#39; where the information comes from</a>
<a id="442" class="Keyword">open</a> <a id="447" class="Keyword">import</a> <a id="454" href="Categories.Category.Core.html" class="Module">Categories.Category.Core</a> <a id="479" class="Keyword">using</a> <a id="485" class="Symbol">(</a><a id="486" href="Categories.Category.Core.html#442" class="Record">Category</a><a id="494" class="Symbol">)</a>
<a id="496" class="Keyword">open</a> <a id="501" class="Keyword">import</a> <a id="508" href="Categories.Category.Product.html" class="Module">Categories.Category.Product</a> <a id="536" class="Keyword">using</a> <a id="542" class="Symbol">(</a><a id="543" href="Categories.Category.Product.html#745" class="Function">Product</a><a id="550" class="Symbol">;</a> <a id="552" href="Categories.Category.Product.html#1962" class="Function Operator">_⁂_</a><a id="555" class="Symbol">)</a>
<a id="557" class="Keyword">open</a> <a id="562" class="Keyword">import</a> <a id="569" href="Categories.Category.Instance.Setoids.html" class="Module">Categories.Category.Instance.Setoids</a> <a id="606" class="Keyword">using</a> <a id="612" class="Symbol">(</a><a id="613" href="Categories.Category.Instance.Setoids.html#555" class="Function">Setoids</a><a id="620" class="Symbol">)</a>
<a id="622" class="Keyword">open</a> <a id="627" class="Keyword">import</a> <a id="634" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="653" class="Keyword">using</a> <a id="659" class="Symbol">(</a><a id="660" href="Categories.Functor.Core.html#248" class="Record">Functor</a><a id="667" class="Symbol">;</a> <a id="669" href="Categories.Functor.html#747" class="Function Operator">_∘F_</a><a id="673" class="Symbol">)</a> <a id="675" class="Keyword">renaming</a> <a id="684" class="Symbol">(</a><a id="685" href="Categories.Functor.html#349" class="Function">id</a> <a id="688" class="Symbol">to</a> <a id="691" class="Function">idF</a><a id="694" class="Symbol">)</a>
<a id="696" class="Keyword">open</a> <a id="701" class="Keyword">import</a> <a id="708" href="Categories.Functor.Bifunctor.html" class="Module">Categories.Functor.Bifunctor</a> <a id="737" class="Keyword">using</a> <a id="743" class="Symbol">(</a><a id="744" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a><a id="753" class="Symbol">)</a>
<a id="755" class="Keyword">open</a> <a id="760" class="Keyword">import</a> <a id="767" href="Categories.Functor.Hom.html" class="Module">Categories.Functor.Hom</a> <a id="790" class="Keyword">using</a> <a id="796" class="Symbol">(</a><a id="797" href="Categories.Functor.Hom.html#1578" class="Function Operator">Hom[_][-,-]</a><a id="808" class="Symbol">)</a>
<a id="810" class="Keyword">open</a> <a id="815" class="Keyword">import</a> <a id="822" href="Categories.Functor.Construction.LiftSetoids.html" class="Module">Categories.Functor.Construction.LiftSetoids</a>
<a id="866" class="Keyword">open</a> <a id="871" class="Keyword">import</a> <a id="878" href="Categories.NaturalTransformation.html" class="Module">Categories.NaturalTransformation</a> <a id="911" class="Keyword">using</a> <a id="917" class="Symbol">(</a><a id="918" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a><a id="939" class="Symbol">;</a> <a id="941" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a><a id="949" class="Symbol">;</a> <a id="951" href="Categories.NaturalTransformation.Core.html#2919" class="Function Operator">_∘ₕ_</a><a id="955" class="Symbol">;</a> <a id="957" href="Categories.NaturalTransformation.Core.html#2439" class="Function Operator">_∘ᵥ_</a><a id="961" class="Symbol">;</a> <a id="963" href="Categories.NaturalTransformation.Core.html#3439" class="Function Operator">_∘ˡ_</a><a id="967" class="Symbol">;</a> <a id="969" href="Categories.NaturalTransformation.Core.html#3784" class="Function Operator">_∘ʳ_</a><a id="973" class="Symbol">)</a>
<a id="977" class="Keyword">renaming</a> <a id="986" class="Symbol">(</a><a id="987" href="Categories.NaturalTransformation.Core.html#2132" class="Function">id</a> <a id="990" class="Symbol">to</a> <a id="993" class="Function">idN</a><a id="996" class="Symbol">)</a>
<a id="998" class="Keyword">open</a> <a id="1003" class="Keyword">import</a> <a id="1010" href="Categories.NaturalTransformation.NaturalIsomorphism.html" class="Module">Categories.NaturalTransformation.NaturalIsomorphism</a>
<a id="1064" class="Keyword">using</a> <a id="1070" class="Symbol">(</a><a id="1071" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a><a id="1089" class="Symbol">;</a> <a id="1091" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6216" class="Function">unitorˡ</a><a id="1098" class="Symbol">;</a> <a id="1100" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6312" class="Function">unitorʳ</a><a id="1107" class="Symbol">;</a> <a id="1109" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7073" class="Function">associator</a><a id="1119" class="Symbol">;</a> <a id="1121" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator">_≃_</a><a id="1124" class="Symbol">)</a>
<a id="1126" class="Keyword">import</a> <a id="1133" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="1163" class="Symbol">as</a> <a id="1166" class="Module">MR</a>
<a id="1170" class="Keyword">private</a>
<a id="1180" class="Keyword">variable</a>
<a id="1193" href="Categories.Adjoint.html#1193" class="Generalizable">o</a> <a id="1195" href="Categories.Adjoint.html#1195" class="Generalizable">o</a> <a id="1198" href="Categories.Adjoint.html#1198" class="Generalizable">o″</a> <a id="1201" href="Categories.Adjoint.html#1201" class="Generalizable"></a> <a id="1203" href="Categories.Adjoint.html#1203" class="Generalizable"></a> <a id="1206" href="Categories.Adjoint.html#1206" class="Generalizable">ℓ″</a> <a id="1209" href="Categories.Adjoint.html#1209" class="Generalizable">e</a> <a id="1211" href="Categories.Adjoint.html#1211" class="Generalizable">e</a> <a id="1214" href="Categories.Adjoint.html#1214" class="Generalizable">e″</a> <a id="1217" class="Symbol">:</a> <a id="1219" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="1229" href="Categories.Adjoint.html#1229" class="Generalizable">C</a> <a id="1231" href="Categories.Adjoint.html#1231" class="Generalizable">D</a> <a id="1233" href="Categories.Adjoint.html#1233" class="Generalizable">E</a> <a id="1235" class="Symbol">:</a> <a id="1237" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1246" href="Categories.Adjoint.html#1193" class="Generalizable">o</a> <a id="1248" href="Categories.Adjoint.html#1201" class="Generalizable"></a> <a id="1250" href="Categories.Adjoint.html#1209" class="Generalizable">e</a>
<a id="1253" class="Keyword">record</a> <a id="Adjoint"></a><a id="1260" href="Categories.Adjoint.html#1260" class="Record">Adjoint</a> <a id="1268" class="Symbol">(</a><a id="1269" href="Categories.Adjoint.html#1269" class="Bound">L</a> <a id="1271" class="Symbol">:</a> <a id="1273" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1281" href="Categories.Adjoint.html#1229" class="Generalizable">C</a> <a id="1283" href="Categories.Adjoint.html#1231" class="Generalizable">D</a><a id="1284" class="Symbol">)</a> <a id="1286" class="Symbol">(</a><a id="1287" href="Categories.Adjoint.html#1287" class="Bound">R</a> <a id="1289" class="Symbol">:</a> <a id="1291" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1299" href="Categories.Adjoint.html#1231" class="Generalizable">D</a> <a id="1301" href="Categories.Adjoint.html#1229" class="Generalizable">C</a><a id="1302" class="Symbol">)</a> <a id="1304" class="Symbol">:</a> <a id="1306" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1310" class="Symbol">(</a><a id="1311" href="Level.html#602" class="Function">levelOfTerm</a> <a id="1323" href="Categories.Adjoint.html#1269" class="Bound">L</a> <a id="1325" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1327" href="Level.html#602" class="Function">levelOfTerm</a> <a id="1339" href="Categories.Adjoint.html#1287" class="Bound">R</a><a id="1340" class="Symbol">)</a> <a id="1342" class="Keyword">where</a>
<a id="1350" class="Keyword">private</a>
<a id="1362" class="Keyword">module</a> <a id="Adjoint.C"></a><a id="1369" href="Categories.Adjoint.html#1369" class="Module">C</a> <a id="1371" class="Symbol">=</a> <a id="1373" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1382" href="Categories.Adjoint.html#1281" class="Bound">C</a>
<a id="1388" class="Keyword">module</a> <a id="Adjoint.D"></a><a id="1395" href="Categories.Adjoint.html#1395" class="Module">D</a> <a id="1397" class="Symbol">=</a> <a id="1399" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1408" href="Categories.Adjoint.html#1283" class="Bound">D</a>
<a id="1414" class="Keyword">module</a> <a id="Adjoint.L"></a><a id="1421" href="Categories.Adjoint.html#1421" class="Module">L</a> <a id="1423" class="Symbol">=</a> <a id="1425" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1433" href="Categories.Adjoint.html#1269" class="Bound">L</a>
<a id="1439" class="Keyword">module</a> <a id="Adjoint.R"></a><a id="1446" href="Categories.Adjoint.html#1446" class="Module">R</a> <a id="1448" class="Symbol">=</a> <a id="1450" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1458" href="Categories.Adjoint.html#1287" class="Bound">R</a>
<a id="1463" class="Keyword">field</a>
<a id="Adjoint.unit"></a><a id="1473" href="Categories.Adjoint.html#1473" class="Field">unit</a> <a id="1480" class="Symbol">:</a> <a id="1482" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="1504" href="Categories.Adjoint.html#691" class="Function">idF</a> <a id="1508" class="Symbol">(</a><a id="1509" href="Categories.Adjoint.html#1287" class="Bound">R</a> <a id="1511" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="1514" href="Categories.Adjoint.html#1269" class="Bound">L</a><a id="1515" class="Symbol">)</a>
<a id="Adjoint.counit"></a><a id="1521" href="Categories.Adjoint.html#1521" class="Field">counit</a> <a id="1528" class="Symbol">:</a> <a id="1530" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="1552" class="Symbol">(</a><a id="1553" href="Categories.Adjoint.html#1269" class="Bound">L</a> <a id="1555" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="1558" href="Categories.Adjoint.html#1287" class="Bound">R</a><a id="1559" class="Symbol">)</a> <a id="1561" href="Categories.Adjoint.html#691" class="Function">idF</a>
<a id="1568" class="Keyword">module</a> <a id="Adjoint.unit"></a><a id="1575" href="Categories.Adjoint.html#1575" class="Module">unit</a> <a id="1580" class="Symbol">=</a> <a id="1582" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="1604" href="Categories.Adjoint.html#1473" class="Field">unit</a>
<a id="1611" class="Keyword">module</a> <a id="Adjoint.counit"></a><a id="1618" href="Categories.Adjoint.html#1618" class="Module">counit</a> <a id="1625" class="Symbol">=</a> <a id="1627" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="1649" href="Categories.Adjoint.html#1521" class="Field">counit</a>
<a id="1659" class="Keyword">field</a>
<a id="Adjoint.zig"></a><a id="1669" href="Categories.Adjoint.html#1669" class="Field">zig</a> <a id="1673" class="Symbol">:</a> <a id="1675" class="Symbol"></a> <a id="1677" class="Symbol">{</a><a id="1678" href="Categories.Adjoint.html#1678" class="Bound">A</a> <a id="1680" class="Symbol">:</a> <a id="1682" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="1687" class="Symbol">}</a> <a id="1689" class="Symbol"></a> <a id="1691" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="1700" class="Symbol">(</a><a id="1701" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="1706" href="Categories.Adjoint.html#1678" class="Bound">A</a><a id="1707" class="Symbol">)</a> <a id="1709" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="1713" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="1718" class="Symbol">(</a><a id="1719" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="1726" href="Categories.Adjoint.html#1678" class="Bound">A</a><a id="1727" class="Symbol">)</a> <a id="1729" href="Categories.Category.Core.html#595" class="Function Operator">D.≈</a> <a id="1733" href="Categories.Category.Core.html#630" class="Function">D.id</a>
<a id="Adjoint.zag"></a><a id="1742" href="Categories.Adjoint.html#1742" class="Field">zag</a> <a id="1746" class="Symbol">:</a> <a id="1748" class="Symbol"></a> <a id="1750" class="Symbol">{</a><a id="1751" href="Categories.Adjoint.html#1751" class="Bound">B</a> <a id="1753" class="Symbol">:</a> <a id="1755" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="1760" class="Symbol">}</a> <a id="1762" class="Symbol"></a> <a id="1764" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="1769" class="Symbol">(</a><a id="1770" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="1779" href="Categories.Adjoint.html#1751" class="Bound">B</a><a id="1780" class="Symbol">)</a> <a id="1782" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="1786" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="1793" class="Symbol">(</a><a id="1794" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="1799" href="Categories.Adjoint.html#1751" class="Bound">B</a><a id="1800" class="Symbol">)</a> <a id="1802" href="Categories.Category.Core.html#595" class="Function Operator">C.≈</a> <a id="1806" href="Categories.Category.Core.html#630" class="Function">C.id</a>
<a id="1814" class="Keyword">private</a>
<a id="1826" class="Keyword">variable</a>
<a id="1841" href="Categories.Adjoint.html#1841" class="Generalizable">A</a> <a id="1843" class="Symbol">:</a> <a id="1845" href="Categories.Category.Core.html#559" class="Function">C.Obj</a>
<a id="1857" href="Categories.Adjoint.html#1857" class="Generalizable">B</a> <a id="1859" class="Symbol">:</a> <a id="1861" href="Categories.Category.Core.html#559" class="Function">D.Obj</a>
<a id="Adjoint.Ladjunct"></a><a id="1870" href="Categories.Adjoint.html#1870" class="Function">Ladjunct</a> <a id="1879" class="Symbol">:</a> <a id="1881" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="1886" href="Categories.Adjoint.html#1841" class="Generalizable">A</a> <a id="1888" href="Categories.Category.Core.html#575" class="Function Operator">D.⇒</a> <a id="1892" href="Categories.Adjoint.html#1857" class="Generalizable">B</a> <a id="1894" class="Symbol"></a> <a id="1896" href="Categories.Adjoint.html#1841" class="Generalizable">A</a> <a id="1898" href="Categories.Category.Core.html#575" class="Function Operator">C.⇒</a> <a id="1902" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="1907" href="Categories.Adjoint.html#1857" class="Generalizable">B</a>
<a id="1911" href="Categories.Adjoint.html#1870" class="Function">Ladjunct</a> <a id="1920" href="Categories.Adjoint.html#1920" class="Bound">f</a> <a id="1922" class="Symbol">=</a> <a id="1924" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="1929" href="Categories.Adjoint.html#1920" class="Bound">f</a> <a id="1931" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="1935" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="1942" class="Symbol">_</a>
<a id="Adjoint.Radjunct"></a><a id="1947" href="Categories.Adjoint.html#1947" class="Function">Radjunct</a> <a id="1956" class="Symbol">:</a> <a id="1958" href="Categories.Adjoint.html#1841" class="Generalizable">A</a> <a id="1960" href="Categories.Category.Core.html#575" class="Function Operator">C.⇒</a> <a id="1964" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="1969" href="Categories.Adjoint.html#1857" class="Generalizable">B</a> <a id="1971" class="Symbol"></a> <a id="1973" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="1978" href="Categories.Adjoint.html#1841" class="Generalizable">A</a> <a id="1980" href="Categories.Category.Core.html#575" class="Function Operator">D.⇒</a> <a id="1984" href="Categories.Adjoint.html#1857" class="Generalizable">B</a>
<a id="1988" href="Categories.Adjoint.html#1947" class="Function">Radjunct</a> <a id="1997" href="Categories.Adjoint.html#1997" class="Bound">f</a> <a id="1999" class="Symbol">=</a> <a id="2001" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="2010" class="Symbol">_</a> <a id="2012" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="2016" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2021" href="Categories.Adjoint.html#1997" class="Bound">f</a>
<a id="Adjoint.RLadjunct≈id"></a><a id="2026" href="Categories.Adjoint.html#2026" class="Function">RLadjunct≈id</a> <a id="2039" class="Symbol">:</a> <a id="2041" class="Symbol"></a> <a id="2043" class="Symbol">{</a><a id="2044" href="Categories.Adjoint.html#2044" class="Bound">f</a> <a id="2046" class="Symbol">:</a> <a id="2048" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="2053" href="Categories.Adjoint.html#1841" class="Generalizable">A</a> <a id="2055" href="Categories.Category.Core.html#575" class="Function Operator">D.⇒</a> <a id="2059" href="Categories.Adjoint.html#1857" class="Generalizable">B</a><a id="2060" class="Symbol">}</a> <a id="2062" class="Symbol"></a> <a id="2064" href="Categories.Adjoint.html#1947" class="Function">Radjunct</a> <a id="2073" class="Symbol">(</a><a id="2074" href="Categories.Adjoint.html#1870" class="Function">Ladjunct</a> <a id="2083" href="Categories.Adjoint.html#2044" class="Bound">f</a><a id="2084" class="Symbol">)</a> <a id="2086" href="Categories.Category.Core.html#595" class="Function Operator">D.≈</a> <a id="2090" href="Categories.Adjoint.html#2044" class="Bound">f</a>
<a id="2094" href="Categories.Adjoint.html#2026" class="Function">RLadjunct≈id</a> <a id="2107" class="Symbol">{</a><a id="2108" class="Argument">f</a> <a id="2110" class="Symbol">=</a> <a id="2112" href="Categories.Adjoint.html#2112" class="Bound">f</a><a id="2113" class="Symbol">}</a> <a id="2115" class="Symbol">=</a> <a id="2117" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="2127" href="Categories.Adjoint.html#1947" class="Function">Radjunct</a> <a id="2136" class="Symbol">(</a><a id="2137" href="Categories.Adjoint.html#1870" class="Function">Ladjunct</a> <a id="2146" href="Categories.Adjoint.html#2112" class="Bound">f</a><a id="2147" class="Symbol">)</a> <a id="2176" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2179" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="2187" href="Categories.Functor.Core.html#565" class="Function">L.homomorphism</a> <a id="2202" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2208" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="2217" class="Symbol">_</a> <a id="2219" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="2223" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2228" class="Symbol">(</a><a id="2229" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2234" href="Categories.Adjoint.html#2112" class="Bound">f</a><a id="2235" class="Symbol">)</a> <a id="2237" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="2241" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2246" class="Symbol">(</a><a id="2247" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="2254" class="Symbol">_)</a> <a id="2257" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2260" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="2266" class="Symbol">(</a><a id="2267" href="Categories.NaturalTransformation.Core.html#827" class="Function">counit.commute</a> <a id="2282" href="Categories.Adjoint.html#2112" class="Bound">f</a><a id="2283" class="Symbol">)</a> <a id="2285" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2291" class="Symbol">(</a><a id="2292" href="Categories.Adjoint.html#2112" class="Bound">f</a> <a id="2294" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="2298" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="2307" class="Symbol">_)</a> <a id="2310" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="2314" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2319" class="Symbol">(</a><a id="2320" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="2327" class="Symbol">_)</a> <a id="2340" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2343" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="2349" href="Categories.Adjoint.html#1669" class="Field">zig</a> <a id="2353" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2359" href="Categories.Adjoint.html#2112" class="Bound">f</a> <a id="2361" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="2365" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="2408" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2411" href="Categories.Category.Core.html#1145" class="Function">D.identityʳ</a> <a id="2423" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2429" href="Categories.Adjoint.html#2112" class="Bound">f</a> <a id="2478" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="2484" class="Keyword">where</a> <a id="2490" class="Keyword">open</a> <a id="2495" href="Categories.Category.Core.html#2462" class="Module">D.HomReasoning</a>
<a id="2520" class="Keyword">open</a> <a id="2525" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="2528" href="Categories.Adjoint.html#1283" class="Bound">D</a>
<a id="Adjoint.LRadjunct≈id"></a><a id="2533" href="Categories.Adjoint.html#2533" class="Function">LRadjunct≈id</a> <a id="2546" class="Symbol">:</a> <a id="2548" class="Symbol"></a> <a id="2550" class="Symbol">{</a><a id="2551" href="Categories.Adjoint.html#2551" class="Bound">f</a> <a id="2553" class="Symbol">:</a> <a id="2555" href="Categories.Adjoint.html#1841" class="Generalizable">A</a> <a id="2557" href="Categories.Category.Core.html#575" class="Function Operator">C.⇒</a> <a id="2561" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="2566" href="Categories.Adjoint.html#1857" class="Generalizable">B</a><a id="2567" class="Symbol">}</a> <a id="2569" class="Symbol"></a> <a id="2571" href="Categories.Adjoint.html#1870" class="Function">Ladjunct</a> <a id="2580" class="Symbol">(</a><a id="2581" href="Categories.Adjoint.html#1947" class="Function">Radjunct</a> <a id="2590" href="Categories.Adjoint.html#2551" class="Bound">f</a><a id="2591" class="Symbol">)</a> <a id="2593" href="Categories.Category.Core.html#595" class="Function Operator">C.≈</a> <a id="2597" href="Categories.Adjoint.html#2551" class="Bound">f</a>
<a id="2601" href="Categories.Adjoint.html#2533" class="Function">LRadjunct≈id</a> <a id="2614" class="Symbol">{</a><a id="2615" class="Argument">f</a> <a id="2617" class="Symbol">=</a> <a id="2619" href="Categories.Adjoint.html#2619" class="Bound">f</a><a id="2620" class="Symbol">}</a> <a id="2622" class="Symbol">=</a> <a id="2624" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="2634" href="Categories.Adjoint.html#1870" class="Function">Ladjunct</a> <a id="2643" class="Symbol">(</a><a id="2644" href="Categories.Adjoint.html#1947" class="Function">Radjunct</a> <a id="2653" href="Categories.Adjoint.html#2619" class="Bound">f</a><a id="2654" class="Symbol">)</a> <a id="2685" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2688" href="Categories.Functor.Core.html#565" class="Function">R.homomorphism</a> <a id="2703" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="2711" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2717" class="Symbol">(</a><a id="2718" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2723" class="Symbol">(</a><a id="2724" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="2733" class="Symbol">_)</a> <a id="2736" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2740" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2745" class="Symbol">(</a><a id="2746" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="2751" href="Categories.Adjoint.html#2619" class="Bound">f</a><a id="2752" class="Symbol">))</a> <a id="2755" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2759" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="2766" class="Symbol">_</a> <a id="2768" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="2772" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="2778" class="Symbol">(</a><a id="2779" href="Categories.NaturalTransformation.Core.html#827" class="Function">unit.commute</a> <a id="2792" href="Categories.Adjoint.html#2619" class="Bound">f</a><a id="2793" class="Symbol">)</a> <a id="2795" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="2801" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="2806" class="Symbol">(</a><a id="2807" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="2816" class="Symbol">_)</a> <a id="2819" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2823" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="2830" class="Symbol">_</a> <a id="2832" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2836" href="Categories.Adjoint.html#2619" class="Bound">f</a> <a id="2852" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2855" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="2861" href="Categories.Adjoint.html#1742" class="Field">zag</a> <a id="2865" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2871" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="2876" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2880" href="Categories.Adjoint.html#2619" class="Bound">f</a> <a id="2922" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2925" href="Categories.Category.Core.html#1096" class="Function">C.identityˡ</a> <a id="2937" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2943" href="Categories.Adjoint.html#2619" class="Bound">f</a> <a id="2994" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="3000" class="Keyword">where</a> <a id="3006" class="Keyword">open</a> <a id="3011" href="Categories.Category.Core.html#2462" class="Module">C.HomReasoning</a>
<a id="3036" class="Keyword">open</a> <a id="3041" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="3044" href="Categories.Adjoint.html#1281" class="Bound">C</a>
<a id="Adjoint.Hom[L-,-]"></a><a id="3049" href="Categories.Adjoint.html#3049" class="Function">Hom[L-,-]</a> <a id="3059" class="Symbol">:</a> <a id="3061" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="3071" href="Categories.Category.Core.html#3132" class="Function">C.op</a> <a id="3076" href="Categories.Adjoint.html#1283" class="Bound">D</a> <a id="3078" class="Symbol">(</a><a id="3079" href="Categories.Category.Instance.Setoids.html#555" class="Function">Setoids</a> <a id="3087" class="Symbol">_</a> <a id="3089" class="Symbol">_)</a>
<a id="3094" href="Categories.Adjoint.html#3049" class="Function">Hom[L-,-]</a> <a id="3104" class="Symbol">=</a> <a id="3106" href="Categories.Functor.Hom.html#1578" class="Function Operator">Hom[</a> <a id="3111" href="Categories.Adjoint.html#1283" class="Bound">D</a> <a id="3113" href="Categories.Functor.Hom.html#1578" class="Function Operator">][-,-]</a> <a id="3120" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="3123" class="Symbol">(</a><a id="3124" href="Categories.Functor.Core.html#816" class="Function">L.op</a> <a id="3129" href="Categories.Category.Product.html#1962" class="Function Operator"></a> <a id="3131" href="Categories.Adjoint.html#691" class="Function">idF</a><a id="3134" class="Symbol">)</a>
<a id="Adjoint.Hom[-,R-]"></a><a id="3139" href="Categories.Adjoint.html#3139" class="Function">Hom[-,R-]</a> <a id="3149" class="Symbol">:</a> <a id="3151" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="3161" href="Categories.Category.Core.html#3132" class="Function">C.op</a> <a id="3166" href="Categories.Adjoint.html#1283" class="Bound">D</a> <a id="3168" class="Symbol">(</a><a id="3169" href="Categories.Category.Instance.Setoids.html#555" class="Function">Setoids</a> <a id="3177" class="Symbol">_</a> <a id="3179" class="Symbol">_)</a>
<a id="3184" href="Categories.Adjoint.html#3139" class="Function">Hom[-,R-]</a> <a id="3194" class="Symbol">=</a> <a id="3196" href="Categories.Functor.Hom.html#1578" class="Function Operator">Hom[</a> <a id="3201" href="Categories.Adjoint.html#1281" class="Bound">C</a> <a id="3203" href="Categories.Functor.Hom.html#1578" class="Function Operator">][-,-]</a> <a id="3210" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="3213" class="Symbol">(</a><a id="3214" href="Categories.Adjoint.html#691" class="Function">idF</a> <a id="3218" href="Categories.Category.Product.html#1962" class="Function Operator"></a> <a id="3220" href="Categories.Adjoint.html#1287" class="Bound">R</a><a id="3221" class="Symbol">)</a>
<a id="3226" class="Keyword">module</a> <a id="Adjoint.Hom[L-,-]"></a><a id="3233" href="Categories.Adjoint.html#3233" class="Module">Hom[L-,-]</a> <a id="3243" class="Symbol">=</a> <a id="3245" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="3253" href="Categories.Adjoint.html#3049" class="Function">Hom[L-,-]</a>
<a id="3265" class="Keyword">module</a> <a id="Adjoint.Hom[-,R-]"></a><a id="3272" href="Categories.Adjoint.html#3272" class="Module">Hom[-,R-]</a> <a id="3282" class="Symbol">=</a> <a id="3284" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="3292" href="Categories.Adjoint.html#3139" class="Function">Hom[-,R-]</a>
<a id="3305" class="Comment">-- Inverse is more &#39;categorical&#39; than bijection defined via injection/surjection</a>
<a id="Adjoint.Hom-inverse"></a><a id="3388" href="Categories.Adjoint.html#3388" class="Function">Hom-inverse</a> <a id="3400" class="Symbol">:</a> <a id="3402" class="Symbol"></a> <a id="3404" href="Categories.Adjoint.html#3404" class="Bound">A</a> <a id="3406" href="Categories.Adjoint.html#3406" class="Bound">B</a> <a id="3408" class="Symbol"></a> <a id="3410" href="Function.Bundles.html#7340" class="Record">Inverse</a> <a id="3418" class="Symbol">(</a><a id="3419" href="Categories.Functor.Core.html#432" class="Function">Hom[L-,-].F₀</a> <a id="3432" class="Symbol">(</a><a id="3433" href="Categories.Adjoint.html#3404" class="Bound">A</a> <a id="3435" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3437" href="Categories.Adjoint.html#3406" class="Bound">B</a><a id="3438" class="Symbol">))</a> <a id="3441" class="Symbol">(</a><a id="3442" href="Categories.Functor.Core.html#432" class="Function">Hom[-,R-].F₀</a> <a id="3455" class="Symbol">(</a><a id="3456" href="Categories.Adjoint.html#3404" class="Bound">A</a> <a id="3458" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3460" href="Categories.Adjoint.html#3406" class="Bound">B</a><a id="3461" class="Symbol">))</a>
<a id="3466" href="Categories.Adjoint.html#3388" class="Function">Hom-inverse</a> <a id="3478" href="Categories.Adjoint.html#3478" class="Bound">A</a> <a id="3480" href="Categories.Adjoint.html#3480" class="Bound">B</a> <a id="3482" class="Symbol">=</a> <a id="3484" class="Keyword">record</a>
<a id="3495" class="Symbol">{</a> <a id="3497" href="Function.Bundles.html#7394" class="Field">to</a> <a id="3500" class="Symbol">=</a> <a id="3502" href="Categories.Adjoint.html#1870" class="Function">Ladjunct</a> <a id="3511" class="Symbol">{</a><a id="3512" href="Categories.Adjoint.html#3478" class="Bound">A</a><a id="3513" class="Symbol">}</a> <a id="3515" class="Symbol">{</a><a id="3516" href="Categories.Adjoint.html#3480" class="Bound">B</a><a id="3517" class="Symbol">}</a>
<a id="3523" class="Symbol">;</a> <a id="3525" href="Function.Bundles.html#7442" class="Field">to-cong</a> <a id="3533" class="Symbol">=</a> <a id="3535" href="Categories.Category.Core.html#1597" class="Function">C.∘-resp-≈ˡ</a> <a id="3547" href="Categories.Adjoint.html#193" class="Function Operator"></a> <a id="3549" href="Categories.Functor.Core.html#696" class="Function">R.F-resp-≈</a>
<a id="3564" class="Symbol">;</a> <a id="3566" href="Function.Bundles.html#7418" class="Field">from</a> <a id="3571" class="Symbol">=</a> <a id="3573" href="Categories.Adjoint.html#1947" class="Function">Radjunct</a> <a id="3582" class="Symbol">{</a><a id="3583" href="Categories.Adjoint.html#3478" class="Bound">A</a><a id="3584" class="Symbol">}</a> <a id="3586" class="Symbol">{</a><a id="3587" href="Categories.Adjoint.html#3480" class="Bound">B</a><a id="3588" class="Symbol">}</a>
<a id="3594" class="Symbol">;</a> <a id="3596" href="Function.Bundles.html#7483" class="Field">from-cong</a> <a id="3606" class="Symbol">=</a> <a id="3608" href="Categories.Category.Core.html#1706" class="Function">D.∘-resp-≈ʳ</a> <a id="3620" href="Categories.Adjoint.html#193" class="Function Operator"></a> <a id="3622" href="Categories.Functor.Core.html#696" class="Function">L.F-resp-≈</a>
<a id="3637" class="Symbol">;</a> <a id="3639" href="Function.Bundles.html#7526" class="Field">inverse</a> <a id="3647" class="Symbol">=</a> <a id="3649" class="Keyword">record</a>
<a id="3662" class="Symbol">{</a> <a id="3664" href="Agda.Builtin.Sigma.html#251" class="Field">fst</a> <a id="3668" class="Symbol">=</a> <a id="3670" class="Symbol">λ</a> <a id="3672" href="Categories.Adjoint.html#3672" class="Bound">p</a> <a id="3674" class="Symbol"></a> <a id="3676" href="Categories.Category.Core.html#1597" class="Function">C.∘-resp-≈ˡ</a> <a id="3688" class="Symbol">(</a><a id="3689" href="Categories.Functor.Core.html#696" class="Function">R.F-resp-≈</a> <a id="3700" href="Categories.Adjoint.html#3672" class="Bound">p</a><a id="3701" class="Symbol">)</a> <a id="3703" href="Categories.Category.Core.html#3061" class="Function Operator">C.HomReasoning.○</a> <a id="3720" href="Categories.Adjoint.html#2533" class="Function">LRadjunct≈id</a>
<a id="3739" class="Symbol">;</a> <a id="3741" href="Agda.Builtin.Sigma.html#263" class="Field">snd</a> <a id="3745" class="Symbol">=</a> <a id="3747" class="Symbol">λ</a> <a id="3749" href="Categories.Adjoint.html#3749" class="Bound">p</a> <a id="3751" class="Symbol"></a> <a id="3753" href="Categories.Category.Core.html#1706" class="Function">D.∘-resp-≈ʳ</a> <a id="3765" class="Symbol">(</a><a id="3766" href="Categories.Functor.Core.html#696" class="Function">L.F-resp-≈</a> <a id="3777" href="Categories.Adjoint.html#3749" class="Bound">p</a><a id="3778" class="Symbol">)</a> <a id="3780" href="Categories.Category.Core.html#3061" class="Function Operator">D.HomReasoning.○</a> <a id="3797" href="Categories.Adjoint.html#2026" class="Function">RLadjunct≈id</a>
<a id="3816" class="Symbol">}</a>
<a id="3822" class="Symbol">}</a>
<a id="3827" class="Keyword">module</a> <a id="Adjoint.Hom-inverse"></a><a id="3834" href="Categories.Adjoint.html#3834" class="Module">Hom-inverse</a> <a id="3846" class="Symbol">{</a><a id="3847" href="Categories.Adjoint.html#3847" class="Bound">A</a><a id="3848" class="Symbol">}</a> <a id="3850" class="Symbol">{</a><a id="3851" href="Categories.Adjoint.html#3851" class="Bound">B</a><a id="3852" class="Symbol">}</a> <a id="3854" class="Symbol">=</a> <a id="3856" href="Function.Bundles.html#7340" class="Module">Inverse</a> <a id="3864" class="Symbol">(</a><a id="3865" href="Categories.Adjoint.html#3388" class="Function">Hom-inverse</a> <a id="3877" href="Categories.Adjoint.html#3847" class="Bound">A</a> <a id="3879" href="Categories.Adjoint.html#3851" class="Bound">B</a><a id="3880" class="Symbol">)</a>
<a id="Adjoint.op"></a><a id="3885" href="Categories.Adjoint.html#3885" class="Function">op</a> <a id="3888" class="Symbol">:</a> <a id="3890" href="Categories.Adjoint.html#1260" class="Record">Adjoint</a> <a id="3898" href="Categories.Functor.Core.html#816" class="Function">R.op</a> <a id="3903" href="Categories.Functor.Core.html#816" class="Function">L.op</a>
<a id="3910" href="Categories.Adjoint.html#3885" class="Function">op</a> <a id="3913" class="Symbol">=</a> <a id="3915" class="Keyword">record</a>
<a id="3926" class="Symbol">{</a> <a id="3928" href="Categories.Adjoint.html#1473" class="Field">unit</a> <a id="3935" class="Symbol">=</a> <a id="3937" href="Categories.NaturalTransformation.Core.html#1114" class="Function">counit.op</a>
<a id="3951" class="Symbol">;</a> <a id="3953" href="Categories.Adjoint.html#1521" class="Field">counit</a> <a id="3960" class="Symbol">=</a> <a id="3962" href="Categories.NaturalTransformation.Core.html#1114" class="Function">unit.op</a>
<a id="3974" class="Symbol">;</a> <a id="3976" href="Categories.Adjoint.html#1669" class="Field">zig</a> <a id="3983" class="Symbol">=</a> <a id="3985" href="Categories.Adjoint.html#1742" class="Field">zag</a>
<a id="3993" class="Symbol">;</a> <a id="3995" href="Categories.Adjoint.html#1742" class="Field">zag</a> <a id="4002" class="Symbol">=</a> <a id="4004" href="Categories.Adjoint.html#1669" class="Field">zig</a>
<a id="4012" class="Symbol">}</a>
<a id="4017" class="Comment">-- naturality condition on the two hom functors.</a>
<a id="4068" class="Comment">-- these conditions are separated out because a complication due to the</a>
<a id="4142" class="Comment">-- universe level in Agda.</a>
<a id="4171" class="Keyword">module</a> <a id="4178" href="Categories.Adjoint.html#4178" class="Module">_</a> <a id="4180" class="Keyword">where</a>
<a id="4190" class="Keyword">open</a> <a id="4195" href="Categories.Adjoint.html#1369" class="Module">C</a>
<a id="4201" class="Keyword">open</a> <a id="4206" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="4223" class="Keyword">open</a> <a id="4228" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="4231" href="Categories.Adjoint.html#1281" class="Bound">C</a>
<a id="4238" href="Categories.Adjoint.html#4238" class="Function">Ladjunct-comm</a> <a id="4252" class="Symbol">:</a> <a id="4254" class="Symbol"></a> <a id="4256" class="Symbol">{</a><a id="4257" href="Categories.Adjoint.html#4257" class="Bound">X</a> <a id="4259" href="Categories.Adjoint.html#4259" class="Bound">Y</a> <a id="4261" href="Categories.Adjoint.html#4261" class="Bound">A</a> <a id="4263" href="Categories.Adjoint.html#4263" class="Bound">B</a><a id="4264" class="Symbol">}</a> <a id="4266" class="Symbol">{</a><a id="4267" href="Categories.Adjoint.html#4267" class="Bound">h</a> <a id="4269" href="Categories.Adjoint.html#4269" class="Bound">i</a> <a id="4271" class="Symbol">:</a> <a id="4273" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="4278" href="Categories.Adjoint.html#4257" class="Bound">X</a> <a id="4280" href="Categories.Category.Core.html#575" class="Function Operator">D.⇒</a> <a id="4284" href="Categories.Adjoint.html#4259" class="Bound">Y</a><a id="4285" class="Symbol">}</a> <a id="4287" class="Symbol">{</a><a id="4288" href="Categories.Adjoint.html#4288" class="Bound">f</a> <a id="4290" class="Symbol">:</a> <a id="4292" href="Categories.Adjoint.html#4261" class="Bound">A</a> <a id="4294" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="4296" href="Categories.Adjoint.html#4257" class="Bound">X</a><a id="4297" class="Symbol">}</a> <a id="4299" class="Symbol">{</a><a id="4300" href="Categories.Adjoint.html#4300" class="Bound">g</a> <a id="4302" class="Symbol">:</a> <a id="4304" href="Categories.Adjoint.html#4259" class="Bound">Y</a> <a id="4306" href="Categories.Category.Core.html#575" class="Function Operator">D.⇒</a> <a id="4310" href="Categories.Adjoint.html#4263" class="Bound">B</a><a id="4311" class="Symbol">}</a> <a id="4313" class="Symbol"></a>
<a id="4337" href="Categories.Adjoint.html#4267" class="Bound">h</a> <a id="4339" href="Categories.Category.Core.html#595" class="Function Operator">D.≈</a> <a id="4343" href="Categories.Adjoint.html#4269" class="Bound">i</a> <a id="4345" class="Symbol"></a>
<a id="4369" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4374" class="Symbol">(</a><a id="4375" href="Categories.Adjoint.html#4300" class="Bound">g</a> <a id="4377" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="4381" href="Categories.Adjoint.html#4267" class="Bound">h</a> <a id="4383" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="4387" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="4392" href="Categories.Adjoint.html#4288" class="Bound">f</a><a id="4393" class="Symbol">)</a> <a id="4395" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4397" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="4404" href="Categories.Adjoint.html#4261" class="Bound">A</a> <a id="4406" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="4408" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4413" href="Categories.Adjoint.html#4300" class="Bound">g</a> <a id="4415" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4417" class="Symbol">(</a><a id="4418" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4423" href="Categories.Adjoint.html#4269" class="Bound">i</a> <a id="4425" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4427" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="4434" href="Categories.Adjoint.html#4257" class="Bound">X</a><a id="4435" class="Symbol">)</a> <a id="4437" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4439" href="Categories.Adjoint.html#4288" class="Bound">f</a>
<a id="4445" href="Categories.Adjoint.html#4238" class="Function">Ladjunct-comm</a> <a id="4459" class="Symbol">{</a><a id="4460" href="Categories.Adjoint.html#4460" class="Bound">X</a><a id="4461" class="Symbol">}</a> <a id="4463" class="Symbol">{</a><a id="4464" href="Categories.Adjoint.html#4464" class="Bound">Y</a><a id="4465" class="Symbol">}</a> <a id="4467" class="Symbol">{</a><a id="4468" href="Categories.Adjoint.html#4468" class="Bound">A</a><a id="4469" class="Symbol">}</a> <a id="4471" class="Symbol">{</a><a id="4472" href="Categories.Adjoint.html#4472" class="Bound">B</a><a id="4473" class="Symbol">}</a> <a id="4475" class="Symbol">{</a><a id="4476" href="Categories.Adjoint.html#4476" class="Bound">h</a><a id="4477" class="Symbol">}</a> <a id="4479" class="Symbol">{</a><a id="4480" href="Categories.Adjoint.html#4480" class="Bound">i</a><a id="4481" class="Symbol">}</a> <a id="4483" class="Symbol">{</a><a id="4484" href="Categories.Adjoint.html#4484" class="Bound">f</a><a id="4485" class="Symbol">}</a> <a id="4487" class="Symbol">{</a><a id="4488" href="Categories.Adjoint.html#4488" class="Bound">g</a><a id="4489" class="Symbol">}</a> <a id="4491" href="Categories.Adjoint.html#4491" class="Bound">eq</a> <a id="4494" class="Symbol">=</a> <a id="4496" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="4508" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4513" class="Symbol">(</a><a id="4514" href="Categories.Adjoint.html#4488" class="Bound">g</a> <a id="4516" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="4520" href="Categories.Adjoint.html#4476" class="Bound">h</a> <a id="4522" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="4526" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="4531" href="Categories.Adjoint.html#4484" class="Bound">f</a><a id="4532" class="Symbol">)</a> <a id="4534" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4536" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="4543" href="Categories.Adjoint.html#4468" class="Bound">A</a> <a id="4553" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4556" href="Categories.Functor.Core.html#565" class="Function">R.homomorphism</a> <a id="4571" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="4579" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4587" class="Symbol">(</a><a id="4588" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4593" href="Categories.Adjoint.html#4488" class="Bound">g</a> <a id="4595" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4597" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4602" class="Symbol">(</a><a id="4603" href="Categories.Adjoint.html#4476" class="Bound">h</a> <a id="4605" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="4609" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="4614" href="Categories.Adjoint.html#4484" class="Bound">f</a><a id="4615" class="Symbol">))</a> <a id="4618" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4620" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="4627" href="Categories.Adjoint.html#4468" class="Bound">A</a> <a id="4632" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4635" class="Symbol">(</a><a id="4636" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="4644" href="Categories.Functor.Core.html#565" class="Function">R.homomorphism</a><a id="4658" class="Symbol">)</a> <a id="4660" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="4668" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4676" class="Symbol">(</a><a id="4677" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4682" href="Categories.Adjoint.html#4488" class="Bound">g</a> <a id="4684" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4686" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4691" href="Categories.Adjoint.html#4476" class="Bound">h</a> <a id="4693" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4695" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4700" class="Symbol">(</a><a id="4701" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="4706" href="Categories.Adjoint.html#4484" class="Bound">f</a><a id="4707" class="Symbol">))</a> <a id="4710" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4712" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="4719" href="Categories.Adjoint.html#4468" class="Bound">A</a> <a id="4721" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4724" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="4730" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="4736" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4744" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4749" href="Categories.Adjoint.html#4488" class="Bound">g</a> <a id="4751" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4753" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4758" href="Categories.Adjoint.html#4476" class="Bound">h</a> <a id="4760" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4762" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4767" class="Symbol">(</a><a id="4768" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="4773" href="Categories.Adjoint.html#4484" class="Bound">f</a><a id="4774" class="Symbol">)</a> <a id="4776" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4778" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="4785" href="Categories.Adjoint.html#4468" class="Bound">A</a> <a id="4789" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="4793" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="4801" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="4803" class="Symbol">(</a><a id="4804" href="Categories.Functor.Core.html#696" class="Function">R.F-resp-≈</a> <a id="4815" href="Categories.Adjoint.html#4491" class="Bound">eq</a><a id="4817" class="Symbol">)</a> <a id="4819" href="Categories.Category.Core.html#2634" class="Function Operator">⟩∘⟨</a> <a id="4823" href="Categories.NaturalTransformation.Core.html#827" class="Function">unit.commute</a> <a id="4836" href="Categories.Adjoint.html#4484" class="Bound">f</a> <a id="4838" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="4846" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4851" href="Categories.Adjoint.html#4488" class="Bound">g</a> <a id="4853" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4855" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4860" href="Categories.Adjoint.html#4480" class="Bound">i</a> <a id="4862" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4864" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="4871" href="Categories.Adjoint.html#4460" class="Bound">X</a> <a id="4873" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4875" href="Categories.Adjoint.html#4484" class="Bound">f</a> <a id="4891" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4894" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="4902" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a> <a id="4912" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4920" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4925" href="Categories.Adjoint.html#4488" class="Bound">g</a> <a id="4927" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4929" class="Symbol">(</a><a id="4930" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="4935" href="Categories.Adjoint.html#4480" class="Bound">i</a> <a id="4937" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4939" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="4946" href="Categories.Adjoint.html#4460" class="Bound">X</a><a id="4947" class="Symbol">)</a> <a id="4949" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4951" href="Categories.Adjoint.html#4484" class="Bound">f</a> <a id="4965" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="4972" href="Categories.Adjoint.html#4972" class="Function">Ladjunct-comm</a> <a id="4987" class="Symbol">:</a> <a id="4989" class="Symbol"></a> <a id="4991" class="Symbol">{</a><a id="4992" href="Categories.Adjoint.html#4992" class="Bound">X</a> <a id="4994" href="Categories.Adjoint.html#4994" class="Bound">A</a> <a id="4996" href="Categories.Adjoint.html#4996" class="Bound">B</a><a id="4997" class="Symbol">}</a> <a id="4999" class="Symbol">{</a><a id="5000" href="Categories.Adjoint.html#5000" class="Bound">f</a> <a id="5002" class="Symbol">:</a> <a id="5004" href="Categories.Adjoint.html#4994" class="Bound">A</a> <a id="5006" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="5008" href="Categories.Adjoint.html#4992" class="Bound">X</a><a id="5009" class="Symbol">}</a> <a id="5011" class="Symbol">{</a><a id="5012" href="Categories.Adjoint.html#5012" class="Bound">g</a> <a id="5014" class="Symbol">:</a> <a id="5016" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="5021" href="Categories.Adjoint.html#4992" class="Bound">X</a> <a id="5023" href="Categories.Category.Core.html#575" class="Function Operator">D.⇒</a> <a id="5027" href="Categories.Adjoint.html#4996" class="Bound">B</a><a id="5028" class="Symbol">}</a> <a id="5030" class="Symbol"></a>
<a id="5054" href="Categories.Adjoint.html#1870" class="Function">Ladjunct</a> <a id="5063" class="Symbol">(</a><a id="5064" href="Categories.Adjoint.html#5012" class="Bound">g</a> <a id="5066" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="5070" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="5075" href="Categories.Adjoint.html#5000" class="Bound">f</a><a id="5076" class="Symbol">)</a> <a id="5078" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="5080" href="Categories.Adjoint.html#1870" class="Function">Ladjunct</a> <a id="5089" href="Categories.Adjoint.html#5012" class="Bound">g</a> <a id="5091" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5093" href="Categories.Adjoint.html#5000" class="Bound">f</a>
<a id="5099" href="Categories.Adjoint.html#4972" class="Function">Ladjunct-comm</a> <a id="5114" class="Symbol">=</a> <a id="5116" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="5126" href="Categories.Functor.Core.html#565" class="Function">R.homomorphism</a> <a id="5141" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="5143" class="Symbol">(</a><a id="5144" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="5150" class="Symbol">(</a><a id="5151" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="5153" class="Symbol">(</a><a id="5154" href="Categories.NaturalTransformation.Core.html#827" class="Function">unit.commute</a> <a id="5167" class="Symbol">_)))</a> <a id="5172" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="5174" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a>
<a id="5189" href="Categories.Adjoint.html#5189" class="Function">Ladjunct-resp-≈</a> <a id="5205" class="Symbol">:</a> <a id="5207" class="Symbol"></a> <a id="5209" class="Symbol">{</a><a id="5210" href="Categories.Adjoint.html#5210" class="Bound">A</a> <a id="5212" href="Categories.Adjoint.html#5212" class="Bound">B</a><a id="5213" class="Symbol">}</a> <a id="5215" class="Symbol">{</a><a id="5216" href="Categories.Adjoint.html#5216" class="Bound">f</a> <a id="5218" href="Categories.Adjoint.html#5218" class="Bound">g</a> <a id="5220" class="Symbol">:</a> <a id="5222" href="Categories.Functor.Core.html#432" class="Function">L.F₀</a> <a id="5227" href="Categories.Adjoint.html#5210" class="Bound">A</a> <a id="5229" href="Categories.Category.Core.html#575" class="Function Operator">D.⇒</a> <a id="5233" href="Categories.Adjoint.html#5212" class="Bound">B</a><a id="5234" class="Symbol">}</a> <a id="5236" class="Symbol"></a> <a id="5238" href="Categories.Adjoint.html#5216" class="Bound">f</a> <a id="5240" href="Categories.Category.Core.html#595" class="Function Operator">D.≈</a> <a id="5244" href="Categories.Adjoint.html#5218" class="Bound">g</a> <a id="5246" class="Symbol"></a> <a id="5248" href="Categories.Adjoint.html#1870" class="Function">Ladjunct</a> <a id="5257" href="Categories.Adjoint.html#5216" class="Bound">f</a> <a id="5259" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="5261" href="Categories.Adjoint.html#1870" class="Function">Ladjunct</a> <a id="5270" href="Categories.Adjoint.html#5218" class="Bound">g</a>
<a id="5276" href="Categories.Adjoint.html#5189" class="Function">Ladjunct-resp-≈</a> <a id="5292" href="Categories.Adjoint.html#5292" class="Bound">eq</a> <a id="5295" class="Symbol">=</a> <a id="5297" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="5307" class="Symbol">(</a><a id="5308" href="Categories.Functor.Core.html#696" class="Function">R.F-resp-≈</a> <a id="5319" href="Categories.Adjoint.html#5292" class="Bound">eq</a><a id="5321" class="Symbol">)</a>
<a id="5326" class="Keyword">module</a> <a id="5333" href="Categories.Adjoint.html#5333" class="Module">_</a> <a id="5335" class="Keyword">where</a>
<a id="5345" class="Keyword">open</a> <a id="5350" href="Categories.Adjoint.html#1395" class="Module">D</a>
<a id="5356" class="Keyword">open</a> <a id="5361" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="5378" class="Keyword">open</a> <a id="5383" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="5386" href="Categories.Adjoint.html#1283" class="Bound">D</a>
<a id="5393" href="Categories.Adjoint.html#5393" class="Function">Radjunct-comm</a> <a id="5407" class="Symbol">:</a> <a id="5409" class="Symbol"></a> <a id="5411" class="Symbol">{</a><a id="5412" href="Categories.Adjoint.html#5412" class="Bound">X</a> <a id="5414" href="Categories.Adjoint.html#5414" class="Bound">Y</a> <a id="5416" href="Categories.Adjoint.html#5416" class="Bound">A</a> <a id="5418" href="Categories.Adjoint.html#5418" class="Bound">B</a><a id="5419" class="Symbol">}</a> <a id="5421" class="Symbol">{</a><a id="5422" href="Categories.Adjoint.html#5422" class="Bound">h</a> <a id="5424" href="Categories.Adjoint.html#5424" class="Bound">i</a> <a id="5426" class="Symbol">:</a> <a id="5428" href="Categories.Adjoint.html#5412" class="Bound">X</a> <a id="5430" href="Categories.Category.Core.html#575" class="Function Operator">C.⇒</a> <a id="5434" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="5439" href="Categories.Adjoint.html#5414" class="Bound">Y</a><a id="5440" class="Symbol">}</a> <a id="5442" class="Symbol">{</a><a id="5443" href="Categories.Adjoint.html#5443" class="Bound">f</a> <a id="5445" class="Symbol">:</a> <a id="5447" href="Categories.Adjoint.html#5416" class="Bound">A</a> <a id="5449" href="Categories.Category.Core.html#575" class="Function Operator">C.⇒</a> <a id="5453" href="Categories.Adjoint.html#5412" class="Bound">X</a><a id="5454" class="Symbol">}</a> <a id="5456" class="Symbol">{</a><a id="5457" href="Categories.Adjoint.html#5457" class="Bound">g</a> <a id="5459" class="Symbol">:</a> <a id="5461" href="Categories.Adjoint.html#5414" class="Bound">Y</a> <a id="5463" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="5465" href="Categories.Adjoint.html#5418" class="Bound">B</a><a id="5466" class="Symbol">}</a> <a id="5468" class="Symbol"></a>
<a id="5492" href="Categories.Adjoint.html#5422" class="Bound">h</a> <a id="5494" href="Categories.Category.Core.html#595" class="Function Operator">C.≈</a> <a id="5498" href="Categories.Adjoint.html#5424" class="Bound">i</a> <a id="5500" class="Symbol"></a>
<a id="5524" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="5533" href="Categories.Adjoint.html#5418" class="Bound">B</a> <a id="5535" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5537" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="5542" class="Symbol">(</a><a id="5543" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="5548" href="Categories.Adjoint.html#5457" class="Bound">g</a> <a id="5550" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5554" href="Categories.Adjoint.html#5422" class="Bound">h</a> <a id="5556" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5560" href="Categories.Adjoint.html#5443" class="Bound">f</a><a id="5561" class="Symbol">)</a> <a id="5563" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="5565" href="Categories.Adjoint.html#5457" class="Bound">g</a> <a id="5567" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5569" class="Symbol">(</a><a id="5570" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="5579" href="Categories.Adjoint.html#5414" class="Bound">Y</a> <a id="5581" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5583" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="5588" href="Categories.Adjoint.html#5424" class="Bound">i</a><a id="5589" class="Symbol">)</a> <a id="5591" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5593" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="5598" href="Categories.Adjoint.html#5443" class="Bound">f</a>
<a id="5604" href="Categories.Adjoint.html#5393" class="Function">Radjunct-comm</a> <a id="5618" class="Symbol">{</a><a id="5619" href="Categories.Adjoint.html#5619" class="Bound">X</a><a id="5620" class="Symbol">}</a> <a id="5622" class="Symbol">{</a><a id="5623" href="Categories.Adjoint.html#5623" class="Bound">Y</a><a id="5624" class="Symbol">}</a> <a id="5626" class="Symbol">{</a><a id="5627" href="Categories.Adjoint.html#5627" class="Bound">A</a><a id="5628" class="Symbol">}</a> <a id="5630" class="Symbol">{</a><a id="5631" href="Categories.Adjoint.html#5631" class="Bound">B</a><a id="5632" class="Symbol">}</a> <a id="5634" class="Symbol">{</a><a id="5635" href="Categories.Adjoint.html#5635" class="Bound">h</a><a id="5636" class="Symbol">}</a> <a id="5638" class="Symbol">{</a><a id="5639" href="Categories.Adjoint.html#5639" class="Bound">i</a><a id="5640" class="Symbol">}</a> <a id="5642" class="Symbol">{</a><a id="5643" href="Categories.Adjoint.html#5643" class="Bound">f</a><a id="5644" class="Symbol">}</a> <a id="5646" class="Symbol">{</a><a id="5647" href="Categories.Adjoint.html#5647" class="Bound">g</a><a id="5648" class="Symbol">}</a> <a id="5650" href="Categories.Adjoint.html#5650" class="Bound">eq</a> <a id="5653" class="Symbol">=</a> <a id="5655" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="5667" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="5676" href="Categories.Adjoint.html#5631" class="Bound">B</a> <a id="5678" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5680" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="5685" class="Symbol">(</a><a id="5686" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="5691" href="Categories.Adjoint.html#5647" class="Bound">g</a> <a id="5693" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5697" href="Categories.Adjoint.html#5635" class="Bound">h</a> <a id="5699" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5703" href="Categories.Adjoint.html#5643" class="Bound">f</a><a id="5704" class="Symbol">)</a> <a id="5712" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5715" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="5723" href="Categories.Functor.Core.html#565" class="Function">L.homomorphism</a> <a id="5738" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5746" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="5755" href="Categories.Adjoint.html#5631" class="Bound">B</a> <a id="5757" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5759" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="5764" class="Symbol">(</a><a id="5765" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="5770" href="Categories.Adjoint.html#5647" class="Bound">g</a><a id="5771" class="Symbol">)</a> <a id="5773" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5775" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="5780" class="Symbol">(</a><a id="5781" href="Categories.Adjoint.html#5635" class="Bound">h</a> <a id="5783" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5787" href="Categories.Adjoint.html#5643" class="Bound">f</a><a id="5788" class="Symbol">)</a> <a id="5791" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5794" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="5800" class="Symbol">(</a><a id="5801" href="Categories.NaturalTransformation.Core.html#827" class="Function">counit.commute</a> <a id="5816" href="Categories.Adjoint.html#5647" class="Bound">g</a><a id="5817" class="Symbol">)</a> <a id="5819" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5827" class="Symbol">(</a><a id="5828" href="Categories.Adjoint.html#5647" class="Bound">g</a> <a id="5830" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5832" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="5841" href="Categories.Adjoint.html#5623" class="Bound">Y</a><a id="5842" class="Symbol">)</a> <a id="5844" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5846" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="5851" class="Symbol">(</a><a id="5852" href="Categories.Adjoint.html#5635" class="Bound">h</a> <a id="5854" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5858" href="Categories.Adjoint.html#5643" class="Bound">f</a><a id="5859" class="Symbol">)</a> <a id="5872" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5875" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="5883" href="Categories.Functor.Core.html#565" class="Function">L.homomorphism</a> <a id="5898" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5906" class="Symbol">(</a><a id="5907" href="Categories.Adjoint.html#5647" class="Bound">g</a> <a id="5909" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5911" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="5920" href="Categories.Adjoint.html#5623" class="Bound">Y</a><a id="5921" class="Symbol">)</a> <a id="5923" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5925" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="5930" href="Categories.Adjoint.html#5635" class="Bound">h</a> <a id="5932" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5934" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="5939" href="Categories.Adjoint.html#5643" class="Bound">f</a> <a id="5951" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5954" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="5962" href="Categories.Functor.Core.html#696" class="Function">L.F-resp-≈</a> <a id="5973" href="Categories.Adjoint.html#5650" class="Bound">eq</a> <a id="5976" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="5984" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5992" class="Symbol">(</a><a id="5993" href="Categories.Adjoint.html#5647" class="Bound">g</a> <a id="5995" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5997" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="6006" href="Categories.Adjoint.html#5623" class="Bound">Y</a><a id="6007" class="Symbol">)</a> <a id="6009" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6011" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="6016" href="Categories.Adjoint.html#5639" class="Bound">i</a> <a id="6018" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6020" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="6025" href="Categories.Adjoint.html#5643" class="Bound">f</a> <a id="6037" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6040" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="6046" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a> <a id="6056" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="6064" href="Categories.Adjoint.html#5647" class="Bound">g</a> <a id="6066" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6068" class="Symbol">(</a><a id="6069" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="6078" href="Categories.Adjoint.html#5623" class="Bound">Y</a> <a id="6080" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6082" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="6087" href="Categories.Adjoint.html#5639" class="Bound">i</a><a id="6088" class="Symbol">)</a> <a id="6090" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6092" href="Categories.Functor.Core.html#455" class="Function">L.F₁</a> <a id="6097" href="Categories.Adjoint.html#5643" class="Bound">f</a> <a id="6109" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="6116" href="Categories.Adjoint.html#6116" class="Function">Radjunct-comm</a> <a id="6131" class="Symbol">:</a> <a id="6133" class="Symbol"></a> <a id="6135" class="Symbol">{</a><a id="6136" href="Categories.Adjoint.html#6136" class="Bound">Y</a> <a id="6138" href="Categories.Adjoint.html#6138" class="Bound">A</a> <a id="6140" href="Categories.Adjoint.html#6140" class="Bound">B</a><a id="6141" class="Symbol">}</a> <a id="6143" class="Symbol">{</a><a id="6144" href="Categories.Adjoint.html#6144" class="Bound">f</a> <a id="6146" class="Symbol">:</a> <a id="6148" href="Categories.Adjoint.html#6138" class="Bound">A</a> <a id="6150" href="Categories.Category.Core.html#575" class="Function Operator">C.⇒</a> <a id="6154" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="6159" href="Categories.Adjoint.html#6136" class="Bound">Y</a><a id="6160" class="Symbol">}</a> <a id="6162" class="Symbol">{</a><a id="6163" href="Categories.Adjoint.html#6163" class="Bound">g</a> <a id="6165" class="Symbol">:</a> <a id="6167" href="Categories.Adjoint.html#6136" class="Bound">Y</a> <a id="6169" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="6171" href="Categories.Adjoint.html#6140" class="Bound">B</a><a id="6172" class="Symbol">}</a> <a id="6174" class="Symbol"></a>
<a id="6198" href="Categories.Adjoint.html#1947" class="Function">Radjunct</a> <a id="6207" class="Symbol">(</a><a id="6208" href="Categories.Functor.Core.html#455" class="Function">R.F₁</a> <a id="6213" href="Categories.Adjoint.html#6163" class="Bound">g</a> <a id="6215" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="6219" href="Categories.Adjoint.html#6144" class="Bound">f</a><a id="6220" class="Symbol">)</a> <a id="6222" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="6224" href="Categories.Adjoint.html#6163" class="Bound">g</a> <a id="6226" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="6228" href="Categories.Adjoint.html#1947" class="Function">Radjunct</a> <a id="6237" href="Categories.Adjoint.html#6144" class="Bound">f</a>
<a id="6243" href="Categories.Adjoint.html#6116" class="Function">Radjunct-comm</a> <a id="6258" class="Symbol">=</a> <a id="6260" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="6270" href="Categories.Functor.Core.html#565" class="Function">L.homomorphism</a> <a id="6285" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="6287" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6293" class="Symbol">(</a><a id="6294" href="Categories.NaturalTransformation.Core.html#827" class="Function">counit.commute</a> <a id="6309" class="Symbol">_)</a> <a id="6312" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="6314" href="Categories.Category.Core.html#715" class="Function">assoc</a>
<a id="6325" href="Categories.Adjoint.html#6325" class="Function">Radjunct-resp-≈</a> <a id="6341" class="Symbol">:</a> <a id="6343" class="Symbol"></a> <a id="6345" class="Symbol">{</a><a id="6346" href="Categories.Adjoint.html#6346" class="Bound">A</a> <a id="6348" href="Categories.Adjoint.html#6348" class="Bound">B</a><a id="6349" class="Symbol">}</a> <a id="6351" class="Symbol">{</a><a id="6352" href="Categories.Adjoint.html#6352" class="Bound">f</a> <a id="6354" href="Categories.Adjoint.html#6354" class="Bound">g</a> <a id="6356" class="Symbol">:</a> <a id="6358" href="Categories.Adjoint.html#6346" class="Bound">A</a> <a id="6360" href="Categories.Category.Core.html#575" class="Function Operator">C.⇒</a> <a id="6364" href="Categories.Functor.Core.html#432" class="Function">R.F₀</a> <a id="6369" href="Categories.Adjoint.html#6348" class="Bound">B</a><a id="6370" class="Symbol">}</a> <a id="6372" class="Symbol"></a> <a id="6374" href="Categories.Adjoint.html#6352" class="Bound">f</a> <a id="6376" href="Categories.Category.Core.html#595" class="Function Operator">C.≈</a> <a id="6380" href="Categories.Adjoint.html#6354" class="Bound">g</a> <a id="6382" class="Symbol"></a> <a id="6384" href="Categories.Adjoint.html#1947" class="Function">Radjunct</a> <a id="6393" href="Categories.Adjoint.html#6352" class="Bound">f</a> <a id="6395" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="6397" href="Categories.Adjoint.html#1947" class="Function">Radjunct</a> <a id="6406" href="Categories.Adjoint.html#6354" class="Bound">g</a>
<a id="6412" href="Categories.Adjoint.html#6325" class="Function">Radjunct-resp-≈</a> <a id="6428" href="Categories.Adjoint.html#6428" class="Bound">eq</a> <a id="6431" class="Symbol">=</a> <a id="6433" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="6443" class="Symbol">(</a><a id="6444" href="Categories.Functor.Core.html#696" class="Function">L.F-resp-≈</a> <a id="6455" href="Categories.Adjoint.html#6428" class="Bound">eq</a><a id="6457" class="Symbol">)</a>
<a id="6462" class="Comment">-- a complication: the two hom functors do not live in the same Setoids,</a>
<a id="6537" class="Comment">-- so they need to be mapped to the same Setoids first before establishing</a>
<a id="6614" class="Comment">-- natural isomorphism!</a>
<a id="6640" class="Keyword">module</a> <a id="6647" href="Categories.Adjoint.html#6647" class="Module">_</a> <a id="6649" class="Keyword">where</a>
<a id="6659" class="Keyword">private</a>
<a id="6673" href="Categories.Adjoint.html#6673" class="Function">level</a> <a id="6680" class="Symbol">:</a> <a id="6682" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="6691" href="Categories.Adjoint.html#1193" class="Generalizable">o</a> <a id="6693" href="Categories.Adjoint.html#1201" class="Generalizable"></a> <a id="6695" href="Categories.Adjoint.html#1209" class="Generalizable">e</a> <a id="6697" class="Symbol"></a> <a id="6699" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="6711" href="Categories.Adjoint.html#6673" class="Function">level</a> <a id="6718" class="Symbol">{</a><a id="6719" class="Argument"></a> <a id="6721" class="Symbol">=</a> <a id="6723" href="Categories.Adjoint.html#6723" class="Bound"></a><a id="6724" class="Symbol">}</a> <a id="6726" class="Symbol">_</a> <a id="6728" class="Symbol">=</a> <a id="6730" href="Categories.Adjoint.html#6723" class="Bound"></a>
<a id="6739" href="Categories.Adjoint.html#6739" class="Function">levele</a> <a id="6746" class="Symbol">:</a> <a id="6748" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="6757" href="Categories.Adjoint.html#1193" class="Generalizable">o</a> <a id="6759" href="Categories.Adjoint.html#1201" class="Generalizable"></a> <a id="6761" href="Categories.Adjoint.html#1209" class="Generalizable">e</a> <a id="6763" class="Symbol"></a> <a id="6765" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="6777" href="Categories.Adjoint.html#6739" class="Function">levele</a> <a id="6784" class="Symbol">{</a><a id="6785" class="Argument">e</a> <a id="6787" class="Symbol">=</a> <a id="6789" href="Categories.Adjoint.html#6789" class="Bound">e</a><a id="6790" class="Symbol">}</a> <a id="6792" class="Symbol">_</a> <a id="6794" class="Symbol">=</a> <a id="6796" href="Categories.Adjoint.html#6789" class="Bound">e</a>
<a id="6804" href="Categories.Adjoint.html#6804" class="Function">Hom[L-,-]</a> <a id="6815" class="Symbol">:</a> <a id="6817" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="6827" href="Categories.Category.Core.html#3132" class="Function">C.op</a> <a id="6832" href="Categories.Adjoint.html#1283" class="Bound">D</a> <a id="6834" class="Symbol">(</a><a id="6835" href="Categories.Category.Instance.Setoids.html#555" class="Function">Setoids</a> <a id="6843" class="Symbol">_</a> <a id="6845" class="Symbol">_)</a>
<a id="6852" href="Categories.Adjoint.html#6804" class="Function">Hom[L-,-]</a> <a id="6863" class="Symbol">=</a> <a id="6865" href="Categories.Functor.Construction.LiftSetoids.html#1046" class="Function">LiftSetoids</a> <a id="6877" class="Symbol">(</a><a id="6878" href="Categories.Adjoint.html#6673" class="Function">level</a> <a id="6885" href="Categories.Adjoint.html#1281" class="Bound">C</a><a id="6886" class="Symbol">)</a> <a id="6888" class="Symbol">(</a><a id="6889" href="Categories.Adjoint.html#6739" class="Function">levele</a> <a id="6896" href="Categories.Adjoint.html#1281" class="Bound">C</a><a id="6897" class="Symbol">)</a> <a id="6899" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6902" href="Categories.Functor.Hom.html#1578" class="Function Operator">Hom[</a> <a id="6907" href="Categories.Adjoint.html#1283" class="Bound">D</a> <a id="6909" href="Categories.Functor.Hom.html#1578" class="Function Operator">][-,-]</a> <a id="6916" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6919" class="Symbol">(</a><a id="6920" href="Categories.Functor.Core.html#816" class="Function">L.op</a> <a id="6925" href="Categories.Category.Product.html#1962" class="Function Operator"></a> <a id="6927" href="Categories.Adjoint.html#691" class="Function">idF</a><a id="6930" class="Symbol">)</a>
<a id="6937" href="Categories.Adjoint.html#6937" class="Function">Hom[-,R-]</a> <a id="6948" class="Symbol">:</a> <a id="6950" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="6960" href="Categories.Category.Core.html#3132" class="Function">C.op</a> <a id="6965" href="Categories.Adjoint.html#1283" class="Bound">D</a> <a id="6967" class="Symbol">(</a><a id="6968" href="Categories.Category.Instance.Setoids.html#555" class="Function">Setoids</a> <a id="6976" class="Symbol">_</a> <a id="6978" class="Symbol">_)</a>
<a id="6985" href="Categories.Adjoint.html#6937" class="Function">Hom[-,R-]</a> <a id="6996" class="Symbol">=</a> <a id="6998" href="Categories.Functor.Construction.LiftSetoids.html#1046" class="Function">LiftSetoids</a> <a id="7010" class="Symbol">(</a><a id="7011" href="Categories.Adjoint.html#6673" class="Function">level</a> <a id="7018" href="Categories.Adjoint.html#1283" class="Bound">D</a><a id="7019" class="Symbol">)</a> <a id="7021" class="Symbol">(</a><a id="7022" href="Categories.Adjoint.html#6739" class="Function">levele</a> <a id="7029" href="Categories.Adjoint.html#1283" class="Bound">D</a><a id="7030" class="Symbol">)</a> <a id="7032" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="7035" href="Categories.Functor.Hom.html#1578" class="Function Operator">Hom[</a> <a id="7040" href="Categories.Adjoint.html#1281" class="Bound">C</a> <a id="7042" href="Categories.Functor.Hom.html#1578" class="Function Operator">][-,-]</a> <a id="7049" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="7052" class="Symbol">(</a><a id="7053" href="Categories.Adjoint.html#691" class="Function">idF</a> <a id="7057" href="Categories.Category.Product.html#1962" class="Function Operator"></a> <a id="7059" href="Categories.Adjoint.html#1287" class="Bound">R</a><a id="7060" class="Symbol">)</a>
<a id="7067" href="Categories.Adjoint.html#7067" class="Function">Hom-NI</a> <a id="7074" class="Symbol">:</a> <a id="7076" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="7095" href="Categories.Adjoint.html#6804" class="Function">Hom[L-,-]</a> <a id="7106" href="Categories.Adjoint.html#6937" class="Function">Hom[-,R-]</a>
<a id="7121" href="Categories.Adjoint.html#7067" class="Function">Hom-NI</a> <a id="7128" class="Symbol">=</a> <a id="7130" class="Keyword">record</a>
<a id="7143" class="Symbol">{</a> <a id="7145" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="7149" class="Symbol">=</a> <a id="7151" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="7160" class="Keyword">record</a>
<a id="7175" class="Symbol">{</a> <a id="7177" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="7185" class="Symbol">=</a> <a id="7187" class="Symbol">λ</a> <a id="7189" href="Categories.Adjoint.html#7189" class="Bound">_</a> <a id="7191" class="Symbol"></a> <a id="7193" class="Keyword">record</a>
<a id="7210" class="Symbol">{</a> <a id="7212" href="Function.Bundles.html#2094" class="Field">to</a> <a id="7215" class="Symbol">=</a> <a id="7217" class="Symbol">λ</a> <a id="7219" href="Categories.Adjoint.html#7219" class="Bound">f</a> <a id="7221" class="Symbol"></a> <a id="7223" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="7228" class="Symbol">(</a><a id="7229" href="Categories.Adjoint.html#1870" class="Function">Ladjunct</a> <a id="7238" class="Symbol">(</a><a id="7239" href="Level.html#479" class="Field">lower</a> <a id="7245" href="Categories.Adjoint.html#7219" class="Bound">f</a><a id="7246" class="Symbol">))</a>
<a id="7259" class="Symbol">;</a> <a id="7261" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="7266" class="Symbol">=</a> <a id="7268" class="Symbol">λ</a> <a id="7270" href="Categories.Adjoint.html#7270" class="Bound">eq</a> <a id="7273" class="Symbol"></a> <a id="7275" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="7280" class="Symbol">(</a><a id="7281" href="Categories.Adjoint.html#5189" class="Function">Ladjunct-resp-≈</a> <a id="7297" class="Symbol">(</a><a id="7298" href="Level.html#479" class="Field">lower</a> <a id="7304" href="Categories.Adjoint.html#7270" class="Bound">eq</a><a id="7306" class="Symbol">))</a>
<a id="7319" class="Symbol">}</a>
<a id="7329" class="Symbol">;</a> <a id="7331" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="7339" class="Symbol">=</a> <a id="7341" class="Symbol">λ</a> <a id="7343" href="Categories.Adjoint.html#7343" class="Bound">_</a> <a id="7345" class="Symbol"></a> <a id="7347" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="7352" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="7354" href="Categories.Adjoint.html#4238" class="Function">Ladjunct-comm</a> <a id="7368" href="Relation.Binary.Structures.html#1596" class="Function">D.Equiv.refl</a>
<a id="7389" class="Symbol">}</a>
<a id="7397" class="Symbol">;</a> <a id="7399" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="7403" class="Symbol">=</a> <a id="7405" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="7414" class="Keyword">record</a>
<a id="7429" class="Symbol">{</a> <a id="7431" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="7439" class="Symbol">=</a> <a id="7441" class="Symbol">λ</a> <a id="7443" href="Categories.Adjoint.html#7443" class="Bound">_</a> <a id="7445" class="Symbol"></a> <a id="7447" class="Keyword">record</a>
<a id="7464" class="Symbol">{</a> <a id="7466" href="Function.Bundles.html#2094" class="Field">to</a> <a id="7469" class="Symbol">=</a> <a id="7471" class="Symbol">λ</a> <a id="7473" href="Categories.Adjoint.html#7473" class="Bound">f</a> <a id="7475" class="Symbol"></a> <a id="7477" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="7482" class="Symbol">(</a><a id="7483" href="Categories.Adjoint.html#1947" class="Function">Radjunct</a> <a id="7492" class="Symbol">(</a><a id="7493" href="Level.html#479" class="Field">lower</a> <a id="7499" href="Categories.Adjoint.html#7473" class="Bound">f</a><a id="7500" class="Symbol">))</a>
<a id="7513" class="Symbol">;</a> <a id="7515" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="7520" class="Symbol">=</a> <a id="7522" class="Symbol">λ</a> <a id="7524" href="Categories.Adjoint.html#7524" class="Bound">eq</a> <a id="7527" class="Symbol"></a> <a id="7529" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="7534" class="Symbol">(</a><a id="7535" href="Categories.Adjoint.html#6325" class="Function">Radjunct-resp-≈</a> <a id="7551" class="Symbol">(</a><a id="7552" href="Level.html#479" class="Field">lower</a> <a id="7558" href="Categories.Adjoint.html#7524" class="Bound">eq</a><a id="7560" class="Symbol">))</a>
<a id="7573" class="Symbol">}</a>
<a id="7583" class="Symbol">;</a> <a id="7585" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="7593" class="Symbol">=</a> <a id="7595" class="Symbol">λ</a> <a id="7597" href="Categories.Adjoint.html#7597" class="Bound">_</a> <a id="7599" class="Symbol"></a> <a id="7601" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="7606" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="7608" href="Categories.Adjoint.html#5393" class="Function">Radjunct-comm</a> <a id="7622" href="Relation.Binary.Structures.html#1596" class="Function">C.Equiv.refl</a>
<a id="7643" class="Symbol">}</a>
<a id="7651" class="Symbol">;</a> <a id="7653" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="7657" class="Symbol">=</a> <a id="7659" class="Symbol">λ</a> <a id="7661" href="Categories.Adjoint.html#7661" class="Bound">X</a> <a id="7663" class="Symbol"></a> <a id="7665" class="Keyword">record</a>
<a id="7680" class="Symbol">{</a> <a id="7682" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="7687" class="Symbol">=</a> <a id="7689" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="7694" href="Categories.Adjoint.html#2026" class="Function">RLadjunct≈id</a>
<a id="7715" class="Symbol">;</a> <a id="7717" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="7722" class="Symbol">=</a> <a id="7724" href="Level.html#466" class="InductiveConstructor">lift</a> <a id="7729" href="Categories.Adjoint.html#2533" class="Function">LRadjunct≈id</a>
<a id="7750" class="Symbol">}</a>
<a id="7758" class="Symbol">}</a>
<a id="7763" class="Keyword">module</a> <a id="Adjoint.Hom-NI"></a><a id="7770" href="Categories.Adjoint.html#7770" class="Module">Hom-NI</a> <a id="7777" class="Symbol">=</a> <a id="7779" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Module">NaturalIsomorphism</a> <a id="7798" href="Categories.Adjoint.html#7067" class="Function">Hom-NI</a>
<a id="7806" class="Keyword">infix</a> <a id="7812" class="Number">5</a> <a id="7814" href="Categories.Adjoint.html#7818" class="Function Operator">_⊣_</a>
<a id="_⊣_"></a><a id="7818" href="Categories.Adjoint.html#7818" class="Function Operator">_⊣_</a> <a id="7822" class="Symbol">=</a> <a id="7824" href="Categories.Adjoint.html#1260" class="Record">Adjoint</a>
<a id="⊣-id"></a><a id="7833" href="Categories.Adjoint.html#7833" class="Function">⊣-id</a> <a id="7838" class="Symbol">:</a> <a id="7840" href="Categories.Adjoint.html#691" class="Function">idF</a> <a id="7844" class="Symbol">{</a><a id="7845" class="Argument">C</a> <a id="7847" class="Symbol">=</a> <a id="7849" href="Categories.Adjoint.html#1229" class="Generalizable">C</a><a id="7850" class="Symbol">}</a> <a id="7852" href="Categories.Adjoint.html#7818" class="Function Operator"></a> <a id="7854" href="Categories.Adjoint.html#691" class="Function">idF</a> <a id="7858" class="Symbol">{</a><a id="7859" class="Argument">C</a> <a id="7861" class="Symbol">=</a> <a id="7863" href="Categories.Adjoint.html#1229" class="Generalizable">C</a><a id="7864" class="Symbol">}</a>
<a id="7866" href="Categories.Adjoint.html#7833" class="Function">⊣-id</a> <a id="7871" class="Symbol">{</a><a id="7872" class="Argument">C</a> <a id="7874" class="Symbol">=</a> <a id="7876" href="Categories.Adjoint.html#7876" class="Bound">C</a><a id="7877" class="Symbol">}</a> <a id="7879" class="Symbol">=</a> <a id="7881" class="Keyword">record</a>
<a id="7890" class="Symbol">{</a> <a id="7892" href="Categories.Adjoint.html#1473" class="Field">unit</a> <a id="7899" class="Symbol">=</a> <a id="7901" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="7905" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6216" class="Function">unitorˡ</a>
<a id="7915" class="Symbol">;</a> <a id="7917" href="Categories.Adjoint.html#1521" class="Field">counit</a> <a id="7924" class="Symbol">=</a> <a id="7926" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="7930" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6312" class="Function">unitorʳ</a>
<a id="7940" class="Symbol">;</a> <a id="7942" href="Categories.Adjoint.html#1669" class="Field">zig</a> <a id="7949" class="Symbol">=</a> <a id="7951" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a>
<a id="7963" class="Symbol">;</a> <a id="7965" href="Categories.Adjoint.html#1742" class="Field">zag</a> <a id="7972" class="Symbol">=</a> <a id="7974" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a>
<a id="7986" class="Symbol">}</a>
<a id="7990" class="Keyword">where</a> <a id="7996" class="Keyword">open</a> <a id="8001" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="8010" href="Categories.Adjoint.html#7876" class="Bound">C</a>
<a id="8020" class="Keyword">open</a> <a id="8025" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Module">NaturalIsomorphism</a>
<a id="8045" class="Keyword">private</a>
<a id="op-involutive"></a><a id="8055" href="Categories.Adjoint.html#8055" class="Function">op-involutive</a> <a id="8069" class="Symbol">:</a> <a id="8071" class="Symbol"></a> <a id="8073" class="Symbol">{</a><a id="8074" href="Categories.Adjoint.html#8074" class="Bound">C</a> <a id="8076" class="Symbol">:</a> <a id="8078" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="8087" href="Categories.Adjoint.html#1193" class="Generalizable">o</a> <a id="8089" href="Categories.Adjoint.html#1201" class="Generalizable"></a> <a id="8091" href="Categories.Adjoint.html#1209" class="Generalizable">e</a><a id="8092" class="Symbol">}</a> <a id="8094" class="Symbol">{</a><a id="8095" href="Categories.Adjoint.html#8095" class="Bound">D</a> <a id="8097" class="Symbol">:</a> <a id="8099" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="8108" href="Categories.Adjoint.html#1195" class="Generalizable">o</a> <a id="8111" href="Categories.Adjoint.html#1203" class="Generalizable"></a> <a id="8114" href="Categories.Adjoint.html#1211" class="Generalizable">e</a><a id="8116" class="Symbol">}</a> <a id="8118" class="Symbol">{</a><a id="8119" href="Categories.Adjoint.html#8119" class="Bound">L</a> <a id="8121" class="Symbol">:</a> <a id="8123" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="8131" href="Categories.Adjoint.html#8074" class="Bound">C</a> <a id="8133" href="Categories.Adjoint.html#8095" class="Bound">D</a><a id="8134" class="Symbol">}</a> <a id="8136" class="Symbol">{</a><a id="8137" href="Categories.Adjoint.html#8137" class="Bound">R</a> <a id="8139" class="Symbol">:</a> <a id="8141" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="8149" href="Categories.Adjoint.html#8095" class="Bound">D</a> <a id="8151" href="Categories.Adjoint.html#8074" class="Bound">C</a><a id="8152" class="Symbol">}</a> <a id="8154" class="Symbol">(</a><a id="8155" href="Categories.Adjoint.html#8155" class="Bound">L⊣R</a> <a id="8159" class="Symbol">:</a> <a id="8161" href="Categories.Adjoint.html#8119" class="Bound">L</a> <a id="8163" href="Categories.Adjoint.html#7818" class="Function Operator"></a> <a id="8165" href="Categories.Adjoint.html#8137" class="Bound">R</a><a id="8166" class="Symbol">)</a> <a id="8168" class="Symbol"></a>
<a id="8188" href="Categories.Adjoint.html#3885" class="Function">Adjoint.op</a> <a id="8199" class="Symbol">(</a><a id="8200" href="Categories.Adjoint.html#3885" class="Function">Adjoint.op</a> <a id="8211" href="Categories.Adjoint.html#8155" class="Bound">L⊣R</a><a id="8214" class="Symbol">)</a> <a id="8216" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="8218" href="Categories.Adjoint.html#8155" class="Bound">L⊣R</a>
<a id="8224" href="Categories.Adjoint.html#8055" class="Function">op-involutive</a> <a id="8238" class="Symbol">_</a> <a id="8240" class="Symbol">=</a> <a id="8242" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
</pre></body></html>