bsc-leon-vatthauer/public/Categories.Category.Equivalence.Properties.html

148 lines
81 KiB
HTML
Raw Normal View History

2023-08-19 16:11:22 +02:00
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.Category.Equivalence.Properties</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Symbol">{-#</a> <a id="5" class="Keyword">OPTIONS</a> <a id="13" class="Pragma">--without-K</a> <a id="25" class="Pragma">--safe</a> <a id="32" class="Symbol">#-}</a>
<a id="37" class="Comment">-- A Categorical WeakInverse induces an Adjoint Equivalence</a>
<a id="98" class="Keyword">module</a> <a id="105" href="Categories.Category.Equivalence.Properties.html" class="Module">Categories.Category.Equivalence.Properties</a> <a id="148" class="Keyword">where</a>
<a id="155" class="Keyword">open</a> <a id="160" class="Keyword">import</a> <a id="167" href="Level.html" class="Module">Level</a>
<a id="174" class="Keyword">open</a> <a id="179" class="Keyword">import</a> <a id="186" href="Data.Product.html" class="Module">Data.Product</a> <a id="199" class="Keyword">using</a> <a id="205" class="Symbol">(</a><a id="206" href="Data.Product.html#925" class="Function">Σ-syntax</a><a id="214" class="Symbol">;</a> <a id="216" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">_,_</a><a id="219" class="Symbol">;</a> <a id="221" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a><a id="226" class="Symbol">)</a>
<a id="229" class="Keyword">open</a> <a id="234" class="Keyword">import</a> <a id="241" href="Categories.Adjoint.Equivalence.html" class="Module">Categories.Adjoint.Equivalence</a> <a id="272" class="Keyword">using</a> <a id="278" class="Symbol">(</a><a id="279" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a><a id="291" class="Symbol">)</a>
<a id="293" class="Keyword">open</a> <a id="298" class="Keyword">import</a> <a id="305" href="Categories.Adjoint.html" class="Module">Categories.Adjoint</a>
<a id="324" class="Keyword">open</a> <a id="329" class="Keyword">import</a> <a id="336" href="Categories.Adjoint.TwoSided.html" class="Module">Categories.Adjoint.TwoSided</a> <a id="364" class="Keyword">using</a> <a id="370" class="Symbol">(</a><a id="371" href="Categories.Adjoint.TwoSided.html#863" class="Record Operator">_⊣⊢_</a><a id="375" class="Symbol">;</a> <a id="377" href="Categories.Adjoint.TwoSided.html#5870" class="Function">withZig</a><a id="384" class="Symbol">)</a>
<a id="386" class="Keyword">open</a> <a id="391" class="Keyword">import</a> <a id="398" href="Categories.Category.html" class="Module">Categories.Category</a>
<a id="418" class="Keyword">open</a> <a id="423" class="Keyword">import</a> <a id="430" href="Categories.Category.Equivalence.html" class="Module">Categories.Category.Equivalence</a> <a id="462" class="Keyword">using</a> <a id="468" class="Symbol">(</a><a id="469" href="Categories.Category.Equivalence.html#713" class="Record">WeakInverse</a><a id="480" class="Symbol">;</a> <a id="482" href="Categories.Category.Equivalence.html#1000" class="Record">StrongEquivalence</a><a id="499" class="Symbol">)</a>
<a id="501" class="Keyword">open</a> <a id="506" class="Keyword">import</a> <a id="513" href="Categories.Morphism.html" class="Module">Categories.Morphism</a>
<a id="533" class="Keyword">import</a> <a id="540" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="570" class="Symbol">as</a> <a id="573" class="Module">MR</a>
<a id="576" class="Keyword">import</a> <a id="583" href="Categories.Morphism.Properties.html" class="Module">Categories.Morphism.Properties</a> <a id="614" class="Symbol">as</a> <a id="617" class="Module">MP</a>
<a id="620" class="Keyword">open</a> <a id="625" class="Keyword">import</a> <a id="632" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="651" class="Keyword">renaming</a> <a id="660" class="Symbol">(</a><a id="661" href="Categories.Functor.html#349" class="Function">id</a> <a id="664" class="Symbol">to</a> <a id="667" class="Function">idF</a><a id="670" class="Symbol">)</a>
<a id="672" class="Keyword">open</a> <a id="677" class="Keyword">import</a> <a id="684" href="Categories.Functor.Properties.html" class="Module">Categories.Functor.Properties</a> <a id="714" class="Keyword">using</a> <a id="720" class="Symbol">(</a><a id="721" href="Categories.Functor.Properties.html#3058" class="Function Operator">[_]-resp-Iso</a><a id="733" class="Symbol">)</a>
<a id="735" class="Keyword">open</a> <a id="740" class="Keyword">import</a> <a id="747" href="Categories.NaturalTransformation.html" class="Module">Categories.NaturalTransformation</a> <a id="780" class="Keyword">using</a> <a id="786" class="Symbol">(</a><a id="787" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a><a id="795" class="Symbol">;</a> <a id="797" href="Categories.NaturalTransformation.Core.html#2439" class="Function Operator">_∘ᵥ_</a><a id="801" class="Symbol">;</a> <a id="803" href="Categories.NaturalTransformation.Core.html#3439" class="Function Operator">_∘ˡ_</a><a id="807" class="Symbol">;</a> <a id="809" href="Categories.NaturalTransformation.Core.html#3784" class="Function Operator">_∘ʳ_</a><a id="813" class="Symbol">)</a>
<a id="815" class="Keyword">open</a> <a id="820" class="Keyword">import</a> <a id="827" href="Categories.NaturalTransformation.NaturalIsomorphism.html" class="Module">Categories.NaturalTransformation.NaturalIsomorphism</a> <a id="879" class="Symbol">as</a> <a id="882" class="Module"></a>
<a id="886" class="Keyword">using</a> <a id="892" class="Symbol">(</a><a id="893" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="912" class="Symbol">;</a> <a id="914" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6216" class="Function">unitorˡ</a><a id="921" class="Symbol">;</a> <a id="923" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6312" class="Function">unitorʳ</a><a id="930" class="Symbol">;</a> <a id="932" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7073" class="Function">associator</a><a id="942" class="Symbol">;</a> <a id="944" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3660" class="Function Operator">_ⓘᵥ_</a><a id="948" class="Symbol">;</a> <a id="950" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4354" class="Function Operator">_ⓘˡ_</a><a id="954" class="Symbol">;</a> <a id="956" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4560" class="Function Operator">_ⓘʳ_</a><a id="960" class="Symbol">)</a>
<a id="962" class="Keyword">open</a> <a id="967" class="Keyword">import</a> <a id="974" href="Categories.NaturalTransformation.NaturalIsomorphism.Properties.html" class="Module">Categories.NaturalTransformation.NaturalIsomorphism.Properties</a> <a id="1037" class="Keyword">using</a> <a id="1043" class="Symbol">(</a><a id="1044" href="Categories.NaturalTransformation.NaturalIsomorphism.Properties.html#927" class="Function">pointwise-iso</a><a id="1057" class="Symbol">)</a>
<a id="1060" class="Keyword">private</a>
<a id="1070" class="Keyword">variable</a>
<a id="1083" href="Categories.Category.Equivalence.Properties.html#1083" class="Generalizable">o</a> <a id="1085" href="Categories.Category.Equivalence.Properties.html#1085" class="Generalizable"></a> <a id="1087" href="Categories.Category.Equivalence.Properties.html#1087" class="Generalizable">e</a> <a id="1089" class="Symbol">:</a> <a id="1091" href="Agda.Primitive.html#591" class="Postulate">Level</a>
<a id="1101" href="Categories.Category.Equivalence.Properties.html#1101" class="Generalizable">C</a> <a id="1103" href="Categories.Category.Equivalence.Properties.html#1103" class="Generalizable">D</a> <a id="1105" href="Categories.Category.Equivalence.Properties.html#1105" class="Generalizable">E</a> <a id="1107" class="Symbol">:</a> <a id="1109" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1118" href="Categories.Category.Equivalence.Properties.html#1083" class="Generalizable">o</a> <a id="1120" href="Categories.Category.Equivalence.Properties.html#1085" class="Generalizable"></a> <a id="1122" href="Categories.Category.Equivalence.Properties.html#1087" class="Generalizable">e</a>
<a id="1125" class="Keyword">module</a> <a id="1132" href="Categories.Category.Equivalence.Properties.html#1132" class="Module">_</a> <a id="1134" class="Symbol">{</a><a id="1135" href="Categories.Category.Equivalence.Properties.html#1135" class="Bound">F</a> <a id="1137" class="Symbol">:</a> <a id="1139" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1147" href="Categories.Category.Equivalence.Properties.html#1101" class="Generalizable">C</a> <a id="1149" href="Categories.Category.Equivalence.Properties.html#1103" class="Generalizable">D</a><a id="1150" class="Symbol">}</a> <a id="1152" class="Symbol">{</a><a id="1153" href="Categories.Category.Equivalence.Properties.html#1153" class="Bound">G</a> <a id="1155" class="Symbol">:</a> <a id="1157" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1165" href="Categories.Category.Equivalence.Properties.html#1103" class="Generalizable">D</a> <a id="1167" href="Categories.Category.Equivalence.Properties.html#1101" class="Generalizable">C</a><a id="1168" class="Symbol">}</a> <a id="1170" class="Symbol">(</a><a id="1171" href="Categories.Category.Equivalence.Properties.html#1171" class="Bound">W</a> <a id="1173" class="Symbol">:</a> <a id="1175" href="Categories.Category.Equivalence.html#713" class="Record">WeakInverse</a> <a id="1187" href="Categories.Category.Equivalence.Properties.html#1135" class="Bound">F</a> <a id="1189" href="Categories.Category.Equivalence.Properties.html#1153" class="Bound">G</a><a id="1190" class="Symbol">)</a> <a id="1192" class="Keyword">where</a>
<a id="1200" class="Keyword">open</a> <a id="1205" href="Categories.Category.Equivalence.html#713" class="Module">WeakInverse</a> <a id="1217" href="Categories.Category.Equivalence.Properties.html#1171" class="Bound">W</a>
<a id="1222" class="Keyword">private</a>
<a id="1234" class="Keyword">module</a> <a id="1241" href="Categories.Category.Equivalence.Properties.html#1241" class="Module">C</a> <a id="1243" class="Symbol">=</a> <a id="1245" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1254" href="Categories.Category.Equivalence.Properties.html#1147" class="Bound">C</a>
<a id="1260" class="Keyword">module</a> <a id="1267" href="Categories.Category.Equivalence.Properties.html#1267" class="Module">D</a> <a id="1269" class="Symbol">=</a> <a id="1271" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1280" href="Categories.Category.Equivalence.Properties.html#1149" class="Bound">D</a>
<a id="1286" class="Keyword">module</a> <a id="1293" href="Categories.Category.Equivalence.Properties.html#1293" class="Module">F</a> <a id="1295" class="Symbol">=</a> <a id="1297" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1305" href="Categories.Category.Equivalence.Properties.html#1135" class="Bound">F</a>
<a id="1311" class="Keyword">module</a> <a id="1318" href="Categories.Category.Equivalence.Properties.html#1318" class="Module">G</a> <a id="1320" class="Symbol">=</a> <a id="1322" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1330" href="Categories.Category.Equivalence.Properties.html#1153" class="Bound">G</a>
<a id="1335" class="Comment">-- adjoint equivalence</a>
<a id="1360" href="Categories.Category.Equivalence.Properties.html#1360" class="Function">F⊣⊢G</a> <a id="1365" class="Symbol">:</a> <a id="1367" href="Categories.Category.Equivalence.Properties.html#1135" class="Bound">F</a> <a id="1369" href="Categories.Adjoint.TwoSided.html#863" class="Record Operator">⊣⊢</a> <a id="1372" href="Categories.Category.Equivalence.Properties.html#1153" class="Bound">G</a>
<a id="1376" href="Categories.Category.Equivalence.Properties.html#1360" class="Function">F⊣⊢G</a> <a id="1381" class="Symbol">=</a> <a id="1383" href="Categories.Adjoint.TwoSided.html#5870" class="Function">withZig</a> <a id="1391" class="Keyword">record</a>
<a id="1402" class="Symbol">{</a> <a id="1404" href="Categories.Adjoint.TwoSided.html#3118" class="Field">unit</a> <a id="1411" class="Symbol">=</a> <a id="1413" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4964" class="Function">≃.sym</a> <a id="1419" href="Categories.Category.Equivalence.html#862" class="Field">G∘F≈id</a>
<a id="1430" class="Symbol">;</a> <a id="1432" href="Categories.Adjoint.TwoSided.html#3148" class="Field">counit</a> <a id="1439" class="Symbol">=</a>
<a id="1447" class="Keyword">let</a> <a id="1451" class="Keyword">open</a> <a id="1456" href="Categories.Category.Equivalence.Properties.html#1267" class="Module">D</a>
<a id="1468" class="Keyword">open</a> <a id="1473" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="1496" class="Keyword">open</a> <a id="1501" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="1504" href="Categories.Category.Equivalence.Properties.html#1149" class="Bound">D</a>
<a id="1516" class="Keyword">open</a> <a id="1521" href="Categories.Morphism.Properties.html" class="Module">MP</a> <a id="1524" href="Categories.Category.Equivalence.Properties.html#1149" class="Bound">D</a>
<a id="1532" class="Keyword">in</a> <a id="1535" class="Keyword">record</a>
<a id="1550" class="Symbol">{</a> <a id="1552" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="1556" class="Symbol">=</a> <a id="1558" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="1567" class="Keyword">record</a>
<a id="1584" class="Symbol">{</a> <a id="1586" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="1594" class="Symbol">=</a> <a id="1596" class="Symbol">λ</a> <a id="1598" href="Categories.Category.Equivalence.Properties.html#1598" class="Bound">X</a> <a id="1600" class="Symbol"></a> <a id="1602" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="1613" href="Categories.Category.Equivalence.Properties.html#1598" class="Bound">X</a> <a id="1615" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1617" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="1622" class="Symbol">(</a><a id="1623" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇒.η</a> <a id="1634" class="Symbol">(</a><a id="1635" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1640" href="Categories.Category.Equivalence.Properties.html#1598" class="Bound">X</a><a id="1641" class="Symbol">))</a> <a id="1644" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1646" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="1657" class="Symbol">(</a><a id="1658" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="1663" class="Symbol">(</a><a id="1664" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1669" href="Categories.Category.Equivalence.Properties.html#1598" class="Bound">X</a><a id="1670" class="Symbol">))</a>
<a id="1683" class="Symbol">;</a> <a id="1685" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="1693" class="Symbol">=</a> <a id="1695" class="Symbol">λ</a> <a id="1697" class="Symbol">{</a><a id="1698" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a> <a id="1700" href="Categories.Category.Equivalence.Properties.html#1700" class="Bound">Y</a><a id="1701" class="Symbol">}</a> <a id="1703" href="Categories.Category.Equivalence.Properties.html#1703" class="Bound">f</a> <a id="1705" class="Symbol"></a> <a id="1707" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="1725" class="Symbol">(</a><a id="1726" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="1737" href="Categories.Category.Equivalence.Properties.html#1700" class="Bound">Y</a> <a id="1739" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1741" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="1746" class="Symbol">(</a><a id="1747" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇒.η</a> <a id="1758" class="Symbol">(</a><a id="1759" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1764" href="Categories.Category.Equivalence.Properties.html#1700" class="Bound">Y</a><a id="1765" class="Symbol">))</a> <a id="1768" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1770" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="1781" class="Symbol">(</a><a id="1782" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="1787" class="Symbol">(</a><a id="1788" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1793" href="Categories.Category.Equivalence.Properties.html#1700" class="Bound">Y</a><a id="1794" class="Symbol">)))</a> <a id="1798" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1800" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="1805" class="Symbol">(</a><a id="1806" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="1811" href="Categories.Category.Equivalence.Properties.html#1703" class="Bound">f</a><a id="1812" class="Symbol">)</a>
<a id="1828" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1831" href="Categories.Morphism.Reasoning.Core.html#7645" class="Function">pull-last</a> <a id="1841" class="Symbol">(</a><a id="1842" href="Categories.NaturalTransformation.Core.html#827" class="Function">F∘G≈id.⇐.commute</a> <a id="1859" class="Symbol">(</a><a id="1860" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="1865" class="Symbol">(</a><a id="1866" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="1871" href="Categories.Category.Equivalence.Properties.html#1703" class="Bound">f</a><a id="1872" class="Symbol">)))</a> <a id="1876" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1890" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="1901" href="Categories.Category.Equivalence.Properties.html#1700" class="Bound">Y</a> <a id="1903" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1905" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="1910" class="Symbol">(</a><a id="1911" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇒.η</a> <a id="1922" class="Symbol">(</a><a id="1923" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1928" href="Categories.Category.Equivalence.Properties.html#1700" class="Bound">Y</a><a id="1929" class="Symbol">))</a> <a id="1932" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1934" class="Symbol">(</a><a id="1935" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="1940" class="Symbol">(</a><a id="1941" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="1946" class="Symbol">(</a><a id="1947" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="1952" class="Symbol">(</a><a id="1953" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="1958" href="Categories.Category.Equivalence.Properties.html#1703" class="Bound">f</a><a id="1959" class="Symbol">)))</a> <a id="1963" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="1965" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="1976" class="Symbol">(</a><a id="1977" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="1982" class="Symbol">(</a><a id="1983" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1988" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a><a id="1989" class="Symbol">)))</a>
<a id="2007" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="2011" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="2019" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="2025" href="Categories.Functor.Core.html#565" class="Function">F.homomorphism</a> <a id="2040" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="2054" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="2065" href="Categories.Category.Equivalence.Properties.html#1700" class="Bound">Y</a> <a id="2067" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2069" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="2074" class="Symbol">(</a><a id="2075" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇒.η</a> <a id="2086" class="Symbol">(</a><a id="2087" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2092" href="Categories.Category.Equivalence.Properties.html#1700" class="Bound">Y</a><a id="2093" class="Symbol">)</a> <a id="2095" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2099" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="2104" class="Symbol">(</a><a id="2105" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="2110" class="Symbol">(</a><a id="2111" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="2116" href="Categories.Category.Equivalence.Properties.html#1703" class="Bound">f</a><a id="2117" class="Symbol">)))</a> <a id="2121" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2123" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="2134" class="Symbol">(</a><a id="2135" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="2140" class="Symbol">(</a><a id="2141" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2146" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a><a id="2147" class="Symbol">))</a>
<a id="2164" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2167" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="2175" href="Categories.Functor.Core.html#696" class="Function">F.F-resp-≈</a> <a id="2186" class="Symbol">(</a><a id="2187" href="Categories.NaturalTransformation.Core.html#827" class="Function">G∘F≈id.⇒.commute</a> <a id="2204" class="Symbol">(</a><a id="2205" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="2210" href="Categories.Category.Equivalence.Properties.html#1703" class="Bound">f</a><a id="2211" class="Symbol">))</a> <a id="2214" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="2222" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2236" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="2247" href="Categories.Category.Equivalence.Properties.html#1700" class="Bound">Y</a> <a id="2249" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2251" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="2256" class="Symbol">(</a><a id="2257" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="2262" href="Categories.Category.Equivalence.Properties.html#1703" class="Bound">f</a> <a id="2264" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2268" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇒.η</a> <a id="2279" class="Symbol">(</a><a id="2280" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2285" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a><a id="2286" class="Symbol">))</a> <a id="2289" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2291" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="2302" class="Symbol">(</a><a id="2303" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="2308" class="Symbol">(</a><a id="2309" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2314" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a><a id="2315" class="Symbol">))</a>
<a id="2332" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2335" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="2343" href="Categories.Functor.Core.html#565" class="Function">F.homomorphism</a> <a id="2358" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="2366" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2380" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="2391" href="Categories.Category.Equivalence.Properties.html#1700" class="Bound">Y</a> <a id="2393" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2395" class="Symbol">(</a><a id="2396" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="2401" class="Symbol">(</a><a id="2402" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="2407" href="Categories.Category.Equivalence.Properties.html#1703" class="Bound">f</a><a id="2408" class="Symbol">)</a> <a id="2410" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2412" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="2417" class="Symbol">(</a><a id="2418" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇒.η</a> <a id="2429" class="Symbol">(</a><a id="2430" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2435" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a><a id="2436" class="Symbol">)))</a> <a id="2440" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2442" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="2453" class="Symbol">(</a><a id="2454" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="2459" class="Symbol">(</a><a id="2460" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2465" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a><a id="2466" class="Symbol">))</a>
<a id="2483" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2486" href="Categories.Morphism.Reasoning.Core.html#7391" class="Function">center⁻¹</a> <a id="2495" class="Symbol">(</a><a id="2496" href="Categories.NaturalTransformation.Core.html#827" class="Function">F∘G≈id.⇒.commute</a> <a id="2513" href="Categories.Category.Equivalence.Properties.html#1703" class="Bound">f</a><a id="2514" class="Symbol">)</a> <a id="2516" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a> <a id="2527" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2541" class="Symbol">(</a><a id="2542" href="Categories.Category.Equivalence.Properties.html#1703" class="Bound">f</a> <a id="2544" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2546" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="2557" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a><a id="2558" class="Symbol">)</a> <a id="2560" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2562" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="2567" class="Symbol">(</a><a id="2568" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇒.η</a> <a id="2579" class="Symbol">(</a><a id="2580" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2585" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a><a id="2586" class="Symbol">))</a> <a id="2589" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2591" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="2602" class="Symbol">(</a><a id="2603" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="2608" class="Symbol">(</a><a id="2609" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2614" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a><a id="2615" class="Symbol">))</a>
<a id="2632" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2635" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="2641" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2655" href="Categories.Category.Equivalence.Properties.html#1703" class="Bound">f</a> <a id="2657" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2659" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="2670" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a> <a id="2672" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2674" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="2679" class="Symbol">(</a><a id="2680" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇒.η</a> <a id="2691" class="Symbol">(</a><a id="2692" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2697" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a><a id="2698" class="Symbol">))</a> <a id="2701" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2703" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="2714" class="Symbol">(</a><a id="2715" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="2720" class="Symbol">(</a><a id="2721" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2726" href="Categories.Category.Equivalence.Properties.html#1698" class="Bound">X</a><a id="2727" class="Symbol">))</a>
<a id="2744" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="2756" class="Symbol">}</a>
<a id="2766" class="Symbol">;</a> <a id="2768" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="2772" class="Symbol">=</a> <a id="2774" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="2783" class="Keyword">record</a>
<a id="2800" class="Symbol">{</a> <a id="2802" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="2810" class="Symbol">=</a> <a id="2812" class="Symbol">λ</a> <a id="2814" href="Categories.Category.Equivalence.Properties.html#2814" class="Bound">X</a> <a id="2816" class="Symbol"></a> <a id="2818" class="Symbol">(</a><a id="2819" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="2830" class="Symbol">(</a><a id="2831" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="2836" class="Symbol">(</a><a id="2837" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2842" href="Categories.Category.Equivalence.Properties.html#2814" class="Bound">X</a><a id="2843" class="Symbol">))</a> <a id="2846" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2848" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="2853" class="Symbol">(</a><a id="2854" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="2865" class="Symbol">(</a><a id="2866" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2871" href="Categories.Category.Equivalence.Properties.html#2814" class="Bound">X</a><a id="2872" class="Symbol">)))</a> <a id="2876" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2878" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="2889" href="Categories.Category.Equivalence.Properties.html#2814" class="Bound">X</a>
<a id="2901" class="Symbol">;</a> <a id="2903" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="2911" class="Symbol">=</a> <a id="2913" class="Symbol">λ</a> <a id="2915" class="Symbol">{</a><a id="2916" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a> <a id="2918" href="Categories.Category.Equivalence.Properties.html#2918" class="Bound">Y</a><a id="2919" class="Symbol">}</a> <a id="2921" href="Categories.Category.Equivalence.Properties.html#2921" class="Bound">f</a> <a id="2923" class="Symbol"></a> <a id="2925" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="2943" class="Symbol">((</a><a id="2945" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="2956" class="Symbol">(</a><a id="2957" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="2962" class="Symbol">(</a><a id="2963" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2968" href="Categories.Category.Equivalence.Properties.html#2918" class="Bound">Y</a><a id="2969" class="Symbol">))</a> <a id="2972" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2974" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="2979" class="Symbol">(</a><a id="2980" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="2991" class="Symbol">(</a><a id="2992" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2997" href="Categories.Category.Equivalence.Properties.html#2918" class="Bound">Y</a><a id="2998" class="Symbol">)))</a> <a id="3002" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3004" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="3015" href="Categories.Category.Equivalence.Properties.html#2918" class="Bound">Y</a><a id="3016" class="Symbol">)</a> <a id="3018" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3020" href="Categories.Category.Equivalence.Properties.html#2921" class="Bound">f</a>
<a id="3036" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3039" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="3045" class="Symbol">(</a><a id="3046" href="Categories.NaturalTransformation.Core.html#827" class="Function">F∘G≈id.⇐.commute</a> <a id="3063" href="Categories.Category.Equivalence.Properties.html#2921" class="Bound">f</a><a id="3064" class="Symbol">)</a> <a id="3066" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3080" class="Symbol">(</a><a id="3081" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="3092" class="Symbol">(</a><a id="3093" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="3098" class="Symbol">(</a><a id="3099" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="3104" href="Categories.Category.Equivalence.Properties.html#2918" class="Bound">Y</a><a id="3105" class="Symbol">))</a> <a id="3108" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3110" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3115" class="Symbol">(</a><a id="3116" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="3127" class="Symbol">(</a><a id="3128" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="3133" href="Categories.Category.Equivalence.Properties.html#2918" class="Bound">Y</a><a id="3134" class="Symbol">)))</a> <a id="3138" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3140" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3145" class="Symbol">(</a><a id="3146" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="3151" href="Categories.Category.Equivalence.Properties.html#2921" class="Bound">f</a><a id="3152" class="Symbol">)</a> <a id="3154" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3156" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="3167" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a>
<a id="3183" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3186" href="Categories.Morphism.Reasoning.Core.html#7259" class="Function">center</a> <a id="3193" class="Symbol">(</a><a id="3194" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="3196" href="Categories.Functor.Core.html#565" class="Function">F.homomorphism</a><a id="3210" class="Symbol">)</a> <a id="3212" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3226" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="3237" class="Symbol">(</a><a id="3238" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="3243" class="Symbol">(</a><a id="3244" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="3249" href="Categories.Category.Equivalence.Properties.html#2918" class="Bound">Y</a><a id="3250" class="Symbol">))</a> <a id="3253" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3255" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3260" class="Symbol">(</a><a id="3261" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="3272" class="Symbol">(</a><a id="3273" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="3278" href="Categories.Category.Equivalence.Properties.html#2918" class="Bound">Y</a><a id="3279" class="Symbol">)</a> <a id="3281" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3285" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="3290" href="Categories.Category.Equivalence.Properties.html#2921" class="Bound">f</a><a id="3291" class="Symbol">)</a> <a id="3293" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3295" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="3306" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a>
<a id="3322" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3325" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="3333" href="Categories.Functor.Core.html#696" class="Function">F.F-resp-≈</a> <a id="3344" class="Symbol">(</a><a id="3345" href="Categories.NaturalTransformation.Core.html#827" class="Function">G∘F≈id.⇐.commute</a> <a id="3362" class="Symbol">(</a><a id="3363" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="3368" href="Categories.Category.Equivalence.Properties.html#2921" class="Bound">f</a><a id="3369" class="Symbol">))</a> <a id="3372" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="3380" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3394" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="3405" class="Symbol">(</a><a id="3406" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="3411" class="Symbol">(</a><a id="3412" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="3417" href="Categories.Category.Equivalence.Properties.html#2918" class="Bound">Y</a><a id="3418" class="Symbol">))</a> <a id="3421" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3423" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3428" class="Symbol">(</a><a id="3429" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="3434" class="Symbol">(</a><a id="3435" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3440" class="Symbol">(</a><a id="3441" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="3446" href="Categories.Category.Equivalence.Properties.html#2921" class="Bound">f</a><a id="3447" class="Symbol">))</a> <a id="3450" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3454" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="3465" class="Symbol">(</a><a id="3466" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="3471" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a><a id="3472" class="Symbol">))</a> <a id="3475" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3477" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="3488" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a>
<a id="3504" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3507" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="3515" href="Categories.Functor.Core.html#565" class="Function">F.homomorphism</a> <a id="3530" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="3538" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3552" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="3563" class="Symbol">(</a><a id="3564" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="3569" class="Symbol">(</a><a id="3570" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="3575" href="Categories.Category.Equivalence.Properties.html#2918" class="Bound">Y</a><a id="3576" class="Symbol">))</a> <a id="3579" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3581" class="Symbol">(</a><a id="3582" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3587" class="Symbol">(</a><a id="3588" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="3593" class="Symbol">(</a><a id="3594" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3599" class="Symbol">(</a><a id="3600" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="3605" href="Categories.Category.Equivalence.Properties.html#2921" class="Bound">f</a><a id="3606" class="Symbol">)))</a> <a id="3610" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3612" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3617" class="Symbol">(</a><a id="3618" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="3629" class="Symbol">(</a><a id="3630" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="3635" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a><a id="3636" class="Symbol">)))</a> <a id="3640" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3642" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="3653" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a>
<a id="3669" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3672" href="Categories.Morphism.Reasoning.Core.html#7391" class="Function">center⁻¹</a> <a id="3681" class="Symbol">(</a><a id="3682" href="Categories.NaturalTransformation.Core.html#827" class="Function">F∘G≈id.⇒.commute</a> <a id="3699" class="Symbol">_)</a> <a id="3702" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a> <a id="3713" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3727" class="Symbol">(</a><a id="3728" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3733" class="Symbol">(</a><a id="3734" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="3739" href="Categories.Category.Equivalence.Properties.html#2921" class="Bound">f</a><a id="3740" class="Symbol">)</a> <a id="3742" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3744" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="3755" class="Symbol">(</a><a id="3756" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="3761" class="Symbol">(</a><a id="3762" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="3767" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a><a id="3768" class="Symbol">)))</a> <a id="3772" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3774" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3779" class="Symbol">(</a><a id="3780" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="3791" class="Symbol">(</a><a id="3792" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="3797" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a><a id="3798" class="Symbol">))</a> <a id="3801" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3803" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="3814" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a>
<a id="3830" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3833" href="Categories.Morphism.Reasoning.Core.html#7259" class="Function">center</a> <a id="3840" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a> <a id="3851" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3865" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3870" class="Symbol">(</a><a id="3871" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="3876" href="Categories.Category.Equivalence.Properties.html#2921" class="Bound">f</a><a id="3877" class="Symbol">)</a> <a id="3879" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3881" class="Symbol">(</a><a id="3882" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="3893" class="Symbol">(</a><a id="3894" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="3899" class="Symbol">(</a><a id="3900" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="3905" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a><a id="3906" class="Symbol">))</a> <a id="3909" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3911" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3916" class="Symbol">(</a><a id="3917" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="3928" class="Symbol">(</a><a id="3929" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="3934" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a><a id="3935" class="Symbol">)))</a> <a id="3939" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3941" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="3952" href="Categories.Category.Equivalence.Properties.html#2916" class="Bound">X</a>
<a id="3968" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="3980" class="Symbol">}</a>
<a id="3990" class="Symbol">;</a> <a id="3992" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="3996" class="Symbol">=</a> <a id="3998" class="Symbol">λ</a> <a id="4000" href="Categories.Category.Equivalence.Properties.html#4000" class="Bound">X</a> <a id="4002" class="Symbol"></a> <a id="4004" href="Categories.Morphism.Properties.html#1137" class="Function">Iso-∘</a> <a id="4010" class="Symbol">(</a><a id="4011" href="Categories.Morphism.Properties.html#1137" class="Function">Iso-∘</a> <a id="4017" class="Symbol">(</a><a id="4018" href="Categories.Morphism.Properties.html#734" class="Function">Iso-swap</a> <a id="4027" class="Symbol">(</a><a id="4028" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Function">F∘G≈id.iso</a> <a id="4039" class="Symbol">_))</a> <a id="4043" class="Symbol">(</a><a id="4044" href="Categories.Functor.Properties.html#3058" class="Function Operator">[</a> <a id="4046" href="Categories.Category.Equivalence.Properties.html#1135" class="Bound">F</a> <a id="4048" href="Categories.Functor.Properties.html#3058" class="Function Operator">]-resp-Iso</a> <a id="4059" class="Symbol">(</a><a id="4060" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Function">G∘F≈id.iso</a> <a id="4071" class="Symbol">_)))</a>
<a id="4104" class="Symbol">(</a><a id="4105" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Function">F∘G≈id.iso</a> <a id="4116" href="Categories.Category.Equivalence.Properties.html#4000" class="Bound">X</a><a id="4117" class="Symbol">)</a>
<a id="4127" class="Symbol">}</a>
<a id="4133" class="Symbol">;</a> <a id="4135" href="Categories.Adjoint.TwoSided.html#3564" class="Field">zig</a> <a id="4142" class="Symbol">=</a> <a id="4144" class="Symbol">λ</a> <a id="4146" class="Symbol">{</a><a id="4147" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4148" class="Symbol">}</a> <a id="4150" class="Symbol"></a>
<a id="4158" class="Keyword">let</a> <a id="4162" class="Keyword">open</a> <a id="4167" href="Categories.Category.Equivalence.Properties.html#1267" class="Module">D</a>
<a id="4179" class="Keyword">open</a> <a id="4184" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="4207" class="Keyword">open</a> <a id="4212" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="4215" href="Categories.Category.Equivalence.Properties.html#1149" class="Bound">D</a>
<a id="4223" class="Keyword">in</a> <a id="4226" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="4238" class="Symbol">(</a><a id="4239" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="4250" class="Symbol">(</a><a id="4251" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4256" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4257" class="Symbol">)</a> <a id="4259" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4261" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="4266" class="Symbol">(</a><a id="4267" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇒.η</a> <a id="4278" class="Symbol">(</a><a id="4279" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="4284" class="Symbol">(</a><a id="4285" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4290" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4291" class="Symbol">)))</a> <a id="4295" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4297" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="4308" class="Symbol">(</a><a id="4309" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4314" class="Symbol">(</a><a id="4315" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="4320" class="Symbol">(</a><a id="4321" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4326" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4327" class="Symbol">))))</a>
<a id="4340" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4342" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="4347" class="Symbol">(</a><a id="4348" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="4359" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4360" class="Symbol">)</a>
<a id="4370" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4373" href="Categories.Morphism.Reasoning.Core.html#7645" class="Function">pull-last</a> <a id="4383" class="Symbol">(</a><a id="4384" href="Categories.NaturalTransformation.Core.html#827" class="Function">F∘G≈id.⇐.commute</a> <a id="4401" class="Symbol">(</a><a id="4402" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="4407" class="Symbol">(</a><a id="4408" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="4419" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4420" class="Symbol">)))</a> <a id="4424" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4432" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="4443" class="Symbol">(</a><a id="4444" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4449" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4450" class="Symbol">)</a> <a id="4452" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4454" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="4459" class="Symbol">(</a><a id="4460" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇒.η</a> <a id="4471" class="Symbol">(</a><a id="4472" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="4477" class="Symbol">(</a><a id="4478" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4483" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4484" class="Symbol">)))</a> <a id="4488" href="Categories.Category.Core.html#656" class="Function Operator"></a>
<a id="4498" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="4503" class="Symbol">(</a><a id="4504" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="4509" class="Symbol">(</a><a id="4510" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="4515" class="Symbol">(</a><a id="4516" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="4527" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4528" class="Symbol">)))</a> <a id="4532" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4534" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="4545" class="Symbol">(</a><a id="4546" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4551" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4552" class="Symbol">)</a>
<a id="4562" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="4566" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="4574" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="4580" href="Categories.Functor.Core.html#565" class="Function">F.homomorphism</a> <a id="4595" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="4603" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="4614" class="Symbol">(</a><a id="4615" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4620" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4621" class="Symbol">)</a> <a id="4623" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4625" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="4630" class="Symbol">(</a><a id="4631" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇒.η</a> <a id="4642" class="Symbol">(</a><a id="4643" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="4648" class="Symbol">(</a><a id="4649" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4654" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4655" class="Symbol">))</a> <a id="4658" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="4662" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="4667" class="Symbol">(</a><a id="4668" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="4673" class="Symbol">(</a><a id="4674" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="4685" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4686" class="Symbol">)))</a> <a id="4690" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4692" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="4703" class="Symbol">(</a><a id="4704" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4709" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4710" class="Symbol">)</a>
<a id="4720" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4723" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="4731" href="Categories.Functor.Core.html#696" class="Function">F.F-resp-≈</a> <a id="4742" class="Symbol">(</a><a id="4743" href="Categories.NaturalTransformation.Core.html#827" class="Function">G∘F≈id.⇒.commute</a> <a id="4760" class="Symbol">(</a><a id="4761" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="4772" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4773" class="Symbol">))</a> <a id="4776" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="4784" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4792" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="4803" class="Symbol">(</a><a id="4804" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4809" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4810" class="Symbol">)</a> <a id="4812" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4814" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="4819" class="Symbol">(</a><a id="4820" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇐.η</a> <a id="4831" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a> <a id="4833" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="4837" href="Categories.NaturalTransformation.Core.html#783" class="Function">G∘F≈id.⇒.η</a> <a id="4848" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4849" class="Symbol">)</a> <a id="4851" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4853" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="4864" class="Symbol">(</a><a id="4865" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4870" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4871" class="Symbol">)</a>
<a id="4881" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4884" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="4892" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="4898" class="Symbol">((</a><a id="4900" href="Categories.Functor.Core.html#696" class="Function">F.F-resp-≈</a> <a id="4911" class="Symbol">(</a><a id="4912" href="Categories.Morphism.html#1586" class="Function">G∘F≈id.iso.isoˡ</a> <a id="4928" class="Symbol">_))</a> <a id="4932" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="4934" href="Categories.Functor.Core.html#511" class="Function">F.identity</a><a id="4944" class="Symbol">)</a> <a id="4946" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4954" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇒.η</a> <a id="4965" class="Symbol">(</a><a id="4966" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4971" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4972" class="Symbol">)</a> <a id="4974" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4976" href="Categories.NaturalTransformation.Core.html#783" class="Function">F∘G≈id.⇐.η</a> <a id="4987" class="Symbol">(</a><a id="4988" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="4993" href="Categories.Category.Equivalence.Properties.html#4147" class="Bound">A</a><a id="4994" class="Symbol">)</a>
<a id="5004" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5007" href="Categories.Morphism.html#1612" class="Function">F∘G≈id.iso.isoʳ</a> <a id="5023" class="Symbol">_</a> <a id="5025" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5033" href="Categories.Category.Core.html#630" class="Function">id</a>
<a id="5044" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="5050" class="Symbol">}</a>
<a id="5055" class="Keyword">module</a> <a id="5062" href="Categories.Category.Equivalence.Properties.html#5062" class="Module">F⊣⊢G</a> <a id="5067" class="Symbol">=</a> <a id="5069" href="Categories.Adjoint.TwoSided.html#863" class="Module Operator">_⊣⊢_</a> <a id="5074" href="Categories.Category.Equivalence.Properties.html#1360" class="Function">F⊣⊢G</a>
<a id="5080" class="Keyword">module</a> <a id="5087" href="Categories.Category.Equivalence.Properties.html#5087" class="Module">_</a> <a id="5089" class="Symbol">{</a><a id="5090" href="Categories.Category.Equivalence.Properties.html#5090" class="Bound">o</a> <a id="5092" href="Categories.Category.Equivalence.Properties.html#5092" class="Bound"></a> <a id="5094" href="Categories.Category.Equivalence.Properties.html#5094" class="Bound">e</a> <a id="5096" href="Categories.Category.Equivalence.Properties.html#5096" class="Bound">o</a> <a id="5099" href="Categories.Category.Equivalence.Properties.html#5099" class="Bound"></a> <a id="5102" href="Categories.Category.Equivalence.Properties.html#5102" class="Bound">e</a><a id="5104" class="Symbol">}</a> <a id="5106" class="Symbol">{</a><a id="5107" href="Categories.Category.Equivalence.Properties.html#5107" class="Bound">C</a> <a id="5109" class="Symbol">:</a> <a id="5111" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="5120" href="Categories.Category.Equivalence.Properties.html#5090" class="Bound">o</a> <a id="5122" href="Categories.Category.Equivalence.Properties.html#5092" class="Bound"></a> <a id="5124" href="Categories.Category.Equivalence.Properties.html#5094" class="Bound">e</a><a id="5125" class="Symbol">}</a> <a id="5127" class="Symbol">{</a><a id="5128" href="Categories.Category.Equivalence.Properties.html#5128" class="Bound">D</a> <a id="5130" class="Symbol">:</a> <a id="5132" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="5141" href="Categories.Category.Equivalence.Properties.html#5096" class="Bound">o</a> <a id="5144" href="Categories.Category.Equivalence.Properties.html#5099" class="Bound"></a> <a id="5147" href="Categories.Category.Equivalence.Properties.html#5102" class="Bound">e</a><a id="5149" class="Symbol">}</a> <a id="5151" class="Symbol">(</a><a id="5152" href="Categories.Category.Equivalence.Properties.html#5152" class="Bound">SE</a> <a id="5155" class="Symbol">:</a> <a id="5157" href="Categories.Category.Equivalence.html#1000" class="Record">StrongEquivalence</a> <a id="5175" href="Categories.Category.Equivalence.Properties.html#5107" class="Bound">C</a> <a id="5177" href="Categories.Category.Equivalence.Properties.html#5128" class="Bound">D</a><a id="5178" class="Symbol">)</a> <a id="5180" class="Keyword">where</a>
<a id="5188" class="Keyword">open</a> <a id="5193" href="Categories.Category.Equivalence.html#1000" class="Module">StrongEquivalence</a> <a id="5211" href="Categories.Category.Equivalence.Properties.html#5152" class="Bound">SE</a>
<a id="5217" href="Categories.Category.Equivalence.Properties.html#5217" class="Function">C≅D</a> <a id="5221" class="Symbol">:</a> <a id="5223" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a> <a id="5236" href="Categories.Category.Equivalence.Properties.html#5107" class="Bound">C</a> <a id="5238" href="Categories.Category.Equivalence.Properties.html#5128" class="Bound">D</a>
<a id="5242" href="Categories.Category.Equivalence.Properties.html#5217" class="Function">C≅D</a> <a id="5246" class="Symbol">=</a> <a id="5248" class="Keyword">record</a>
<a id="5259" class="Symbol">{</a> <a id="5261" href="Categories.Adjoint.Equivalence.html#682" class="Field">L</a> <a id="5266" class="Symbol">=</a> <a id="5268" href="Categories.Category.Equivalence.html#1131" class="Field">F</a>
<a id="5274" class="Symbol">;</a> <a id="5276" href="Categories.Adjoint.Equivalence.html#705" class="Field">R</a> <a id="5281" class="Symbol">=</a> <a id="5283" href="Categories.Category.Equivalence.html#1162" class="Field">G</a>
<a id="5289" class="Symbol">;</a> <a id="5291" href="Categories.Adjoint.Equivalence.html#728" class="Field">L⊣⊢R</a> <a id="5296" class="Symbol">=</a> <a id="5298" href="Categories.Category.Equivalence.Properties.html#1360" class="Function">F⊣⊢G</a> <a id="5303" href="Categories.Category.Equivalence.html#1193" class="Field">weak-inverse</a>
<a id="5320" class="Symbol">}</a>
<a id="5325" class="Keyword">module</a> <a id="5332" href="Categories.Category.Equivalence.Properties.html#5332" class="Module">C≅D</a> <a id="5336" class="Symbol">=</a> <a id="5338" href="Categories.Adjoint.Equivalence.html#573" class="Module">⊣Equivalence</a> <a id="5351" href="Categories.Category.Equivalence.Properties.html#5217" class="Function">C≅D</a>
<a id="5356" class="Keyword">module</a> <a id="5363" href="Categories.Category.Equivalence.Properties.html#5363" class="Module">_</a> <a id="5365" class="Symbol">{</a><a id="5366" href="Categories.Category.Equivalence.Properties.html#5366" class="Bound">F</a> <a id="5368" class="Symbol">:</a> <a id="5370" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="5378" href="Categories.Category.Equivalence.Properties.html#1101" class="Generalizable">C</a> <a id="5380" href="Categories.Category.Equivalence.Properties.html#1103" class="Generalizable">D</a><a id="5381" class="Symbol">}</a> <a id="5383" class="Symbol">{</a><a id="5384" href="Categories.Category.Equivalence.Properties.html#5384" class="Bound">G</a> <a id="5386" class="Symbol">:</a> <a id="5388" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="5396" href="Categories.Category.Equivalence.Properties.html#1103" class="Generalizable">D</a> <a id="5398" href="Categories.Category.Equivalence.Properties.html#1101" class="Generalizable">C</a><a id="5399" class="Symbol">}</a> <a id="5401" class="Symbol">(</a><a id="5402" href="Categories.Category.Equivalence.Properties.html#5402" class="Bound">F⊣G</a> <a id="5406" class="Symbol">:</a> <a id="5408" href="Categories.Category.Equivalence.Properties.html#5366" class="Bound">F</a> <a id="5410" href="Categories.Adjoint.html#7972" class="Function Operator"></a> <a id="5412" href="Categories.Category.Equivalence.Properties.html#5384" class="Bound">G</a><a id="5413" class="Symbol">)</a> <a id="5415" class="Keyword">where</a>
<a id="5423" class="Keyword">private</a>
<a id="5435" class="Keyword">module</a> <a id="5442" href="Categories.Category.Equivalence.Properties.html#5442" class="Module">C</a> <a id="5444" class="Symbol">=</a> <a id="5446" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="5455" href="Categories.Category.Equivalence.Properties.html#5378" class="Bound">C</a>
<a id="5461" class="Keyword">module</a> <a id="5468" href="Categories.Category.Equivalence.Properties.html#5468" class="Module">D</a> <a id="5470" class="Symbol">=</a> <a id="5472" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="5481" href="Categories.Category.Equivalence.Properties.html#5380" class="Bound">D</a>
<a id="5487" class="Keyword">module</a> <a id="5494" href="Categories.Category.Equivalence.Properties.html#5494" class="Module">F</a> <a id="5496" class="Symbol">=</a> <a id="5498" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="5506" href="Categories.Category.Equivalence.Properties.html#5366" class="Bound">F</a>
<a id="5512" class="Keyword">module</a> <a id="5519" href="Categories.Category.Equivalence.Properties.html#5519" class="Module">G</a> <a id="5521" class="Symbol">=</a> <a id="5523" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="5531" href="Categories.Category.Equivalence.Properties.html#5384" class="Bound">G</a>
<a id="5536" class="Keyword">open</a> <a id="5541" href="Categories.Adjoint.html#1306" class="Module">Adjoint</a> <a id="5549" href="Categories.Category.Equivalence.Properties.html#5402" class="Bound">F⊣G</a>
<a id="5556" class="Comment">-- If the unit and the counit of an adjuction are pointwise isomorphisms, then they form an equivalence of categories.</a>
<a id="5677" href="Categories.Category.Equivalence.Properties.html#5677" class="Function">pointwise-iso-equivalence</a> <a id="5703" class="Symbol">:</a> <a id="5705" class="Symbol">(∀</a> <a id="5708" href="Categories.Category.Equivalence.Properties.html#5708" class="Bound">X</a> <a id="5710" class="Symbol"></a> <a id="5712" href="Data.Product.html#925" class="Function">Σ[</a> <a id="5715" href="Categories.Category.Equivalence.Properties.html#5715" class="Bound">f</a> <a id="5717" href="Data.Product.html#925" class="Function"></a> <a id="5719" href="Categories.Category.Equivalence.Properties.html#5380" class="Bound">D</a> <a id="5721" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="5723" href="Categories.Category.Equivalence.Properties.html#5708" class="Bound">X</a> <a id="5725" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="5727" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="5732" class="Symbol">(</a><a id="5733" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="5738" href="Categories.Category.Equivalence.Properties.html#5708" class="Bound">X</a><a id="5739" class="Symbol">)</a> <a id="5741" href="Categories.Category.html#502" class="Function Operator">]</a> <a id="5743" href="Data.Product.html#925" class="Function">]</a> <a id="5745" href="Categories.Morphism.html#1528" class="Record">Iso</a> <a id="5749" href="Categories.Category.Equivalence.Properties.html#5380" class="Bound">D</a> <a id="5751" class="Symbol">(</a><a id="5752" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="5761" href="Categories.Category.Equivalence.Properties.html#5708" class="Bound">X</a><a id="5762" class="Symbol">)</a> <a id="5764" href="Categories.Category.Equivalence.Properties.html#5715" class="Bound">f</a><a id="5765" class="Symbol">)</a> <a id="5767" class="Symbol"></a> <a id="5769" class="Symbol">(∀</a> <a id="5772" href="Categories.Category.Equivalence.Properties.html#5772" class="Bound">X</a> <a id="5774" class="Symbol"></a> <a id="5776" href="Data.Product.html#925" class="Function">Σ[</a> <a id="5779" href="Categories.Category.Equivalence.Properties.html#5779" class="Bound">f</a> <a id="5781" href="Data.Product.html#925" class="Function"></a> <a id="5783" href="Categories.Category.Equivalence.Properties.html#5378" class="Bound">C</a> <a id="5785" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="5788" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="5793" class="Symbol">(</a><a id="5794" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="5799" href="Categories.Category.Equivalence.Properties.html#5772" class="Bound">X</a><a id="5800" class="Symbol">)</a> <a id="5802" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="5804" href="Categories.Category.Equivalence.Properties.html#5772" class="Bound">X</a> <a id="5806" href="Categories.Category.html#502" class="Function Operator">]</a> <a id="5808" href="Data.Product.html#925" class="Function">]</a> <a id="5810" href="Categories.Morphism.html#1528" class="Record">Iso</a> <a id="5814" href="Categories.Category.Equivalence.Properties.html#5378" class="Bound">C</a> <a id="5816" class="Symbol">(</a><a id="5817" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="5824" href="Categories.Category.Equivalence.Properties.html#5772" class="Bound">X</a><a id="5825" class="Symbol">)</a> <a id="5827" href="Categories.Category.Equivalence.Properties.html#5779" class="Bound">f</a><a id="5828" class="Symbol">)</a> <a id="5830" class="Symbol"></a> <a id="5832" href="Categories.Category.Equivalence.html#713" class="Record">WeakInverse</a> <a id="5844" href="Categories.Category.Equivalence.Properties.html#5366" class="Bound">F</a> <a id="5846" href="Categories.Category.Equivalence.Properties.html#5384" class="Bound">G</a>
<a id="5850" href="Categories.Category.Equivalence.Properties.html#5677" class="Function">pointwise-iso-equivalence</a> <a id="5876" href="Categories.Category.Equivalence.Properties.html#5876" class="Bound">counit-iso</a> <a id="5887" href="Categories.Category.Equivalence.Properties.html#5887" class="Bound">unit-iso</a> <a id="5896" class="Symbol">=</a> <a id="5898" class="Keyword">record</a>
<a id="5909" class="Symbol">{</a> <a id="5911" href="Categories.Category.Equivalence.html#817" class="Field">F∘G≈id</a> <a id="5918" class="Symbol">=</a>
<a id="5926" class="Keyword">let</a> <a id="5930" href="Categories.Category.Equivalence.Properties.html#5930" class="Bound">iso</a> <a id="5934" href="Categories.Category.Equivalence.Properties.html#5934" class="Bound">X</a> <a id="5936" class="Symbol">=</a>
<a id="5950" class="Keyword">let</a> <a id="5954" class="Symbol">(</a><a id="5955" href="Categories.Category.Equivalence.Properties.html#5955" class="Bound">to</a> <a id="5958" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5960" href="Categories.Category.Equivalence.Properties.html#5960" class="Bound">is-iso</a><a id="5966" class="Symbol">)</a> <a id="5968" class="Symbol">=</a> <a id="5970" href="Categories.Category.Equivalence.Properties.html#5876" class="Bound">counit-iso</a> <a id="5981" href="Categories.Category.Equivalence.Properties.html#5934" class="Bound">X</a>
<a id="5995" class="Keyword">in</a> <a id="5998" class="Keyword">record</a> <a id="6005" class="Symbol">{</a> <a id="6007" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="6012" class="Symbol">=</a> <a id="6014" href="Categories.NaturalTransformation.Core.html#783" class="Function">counit.η</a> <a id="6023" href="Categories.Category.Equivalence.Properties.html#5934" class="Bound">X</a> <a id="6025" class="Symbol">;</a> <a id="6027" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="6030" class="Symbol">=</a> <a id="6032" href="Categories.Category.Equivalence.Properties.html#5955" class="Bound">to</a> <a id="6035" class="Symbol">;</a> <a id="6037" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="6041" class="Symbol">=</a> <a id="6043" href="Categories.Category.Equivalence.Properties.html#5960" class="Bound">is-iso</a> <a id="6050" class="Symbol">}</a>
<a id="6058" class="Keyword">in</a> <a id="6061" href="Categories.NaturalTransformation.NaturalIsomorphism.Properties.html#927" class="Function">pointwise-iso</a> <a id="6075" href="Categories.Category.Equivalence.Properties.html#5930" class="Bound">iso</a> <a id="6079" href="Categories.NaturalTransformation.Core.html#827" class="Function">counit.commute</a>
<a id="6098" class="Symbol">;</a> <a id="6100" href="Categories.Category.Equivalence.html#862" class="Field">G∘F≈id</a> <a id="6107" class="Symbol">=</a>
<a id="6115" class="Keyword">let</a> <a id="6119" href="Categories.Category.Equivalence.Properties.html#6119" class="Bound">iso</a> <a id="6123" href="Categories.Category.Equivalence.Properties.html#6123" class="Bound">X</a> <a id="6125" class="Symbol">=</a>
<a id="6139" class="Keyword">let</a> <a id="6143" class="Symbol">(</a><a id="6144" href="Categories.Category.Equivalence.Properties.html#6144" class="Bound">to</a> <a id="6147" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="6149" href="Categories.Category.Equivalence.Properties.html#6149" class="Bound">is-iso</a><a id="6155" class="Symbol">)</a> <a id="6157" class="Symbol">=</a> <a id="6159" href="Categories.Category.Equivalence.Properties.html#5887" class="Bound">unit-iso</a> <a id="6168" href="Categories.Category.Equivalence.Properties.html#6123" class="Bound">X</a>
<a id="6182" class="Keyword">in</a> <a id="6185" class="Keyword">record</a> <a id="6192" class="Symbol">{</a> <a id="6194" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="6199" class="Symbol">=</a> <a id="6201" href="Categories.NaturalTransformation.Core.html#783" class="Function">unit.η</a> <a id="6208" href="Categories.Category.Equivalence.Properties.html#6123" class="Bound">X</a> <a id="6210" class="Symbol">;</a> <a id="6212" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="6215" class="Symbol">=</a> <a id="6217" href="Categories.Category.Equivalence.Properties.html#6144" class="Bound">to</a> <a id="6220" class="Symbol">;</a> <a id="6222" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="6226" class="Symbol">=</a> <a id="6228" href="Categories.Category.Equivalence.Properties.html#6149" class="Bound">is-iso</a> <a id="6235" class="Symbol">}</a>
<a id="6243" class="Keyword">in</a> <a id="6246" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4964" class="Function">≃.sym</a> <a id="6252" class="Symbol">(</a><a id="6253" href="Categories.NaturalTransformation.NaturalIsomorphism.Properties.html#927" class="Function">pointwise-iso</a> <a id="6267" href="Categories.Category.Equivalence.Properties.html#6119" class="Bound">iso</a> <a id="6271" href="Categories.NaturalTransformation.Core.html#827" class="Function">unit.commute</a><a id="6283" class="Symbol">)</a>
<a id="6289" class="Symbol">}</a>
</pre></body></html>