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

260 lines
No EOL
116 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.NaturalTransformation.NaturalIsomorphism</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Symbol">{-#</a> <a id="5" class="Keyword">OPTIONS</a> <a id="13" class="Pragma">--without-K</a> <a id="25" class="Pragma">--safe</a> <a id="32" class="Symbol">#-}</a>
<a id="37" class="Keyword">module</a> <a id="44" href="Categories.NaturalTransformation.NaturalIsomorphism.html" class="Module">Categories.NaturalTransformation.NaturalIsomorphism</a> <a id="96" class="Keyword">where</a>
<a id="103" class="Keyword">open</a> <a id="108" class="Keyword">import</a> <a id="115" href="Level.html" class="Module">Level</a>
<a id="121" class="Keyword">open</a> <a id="126" class="Keyword">import</a> <a id="133" href="Data.Product.html" class="Module">Data.Product</a> <a id="146" class="Keyword">using</a> <a id="152" class="Symbol">(</a><a id="153" href="Data.Product.Base.html#1618" class="Function Operator">_×_</a><a id="156" class="Symbol">;</a> <a id="158" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="161" class="Symbol">;</a> <a id="163" href="Data.Product.Base.html#2173" class="Function">map</a><a id="166" class="Symbol">;</a> <a id="168" href="Data.Product.Base.html#2747" class="Function">zip</a><a id="171" class="Symbol">)</a>
<a id="173" class="Keyword">open</a> <a id="178" class="Keyword">import</a> <a id="185" href="Function.html" class="Module">Function</a> <a id="194" class="Keyword">using</a> <a id="200" class="Symbol">(</a><a id="201" href="Function.Base.html#1638" class="Function">flip</a><a id="205" class="Symbol">)</a>
<a id="208" class="Keyword">open</a> <a id="213" class="Keyword">import</a> <a id="220" href="Categories.Category.html" class="Module">Categories.Category</a>
<a id="240" class="Keyword">open</a> <a id="245" class="Keyword">import</a> <a id="252" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="271" class="Symbol">as</a> <a id="274" class="Module"></a> <a id="276" class="Keyword">renaming</a> <a id="285" class="Symbol">(</a><a id="286" href="Categories.Functor.html#349" class="Function">id</a> <a id="289" class="Symbol">to</a> <a id="292" class="Function">idF</a><a id="295" class="Symbol">)</a>
<a id="297" class="Keyword">import</a> <a id="304" href="Categories.NaturalTransformation.html" class="Module">Categories.NaturalTransformation</a> <a id="337" class="Symbol">as</a> <a id="340" class="Module">NT</a>
<a id="343" class="Keyword">open</a> <a id="348" href="Categories.NaturalTransformation.html" class="Module">NT</a> <a id="351" class="Keyword">hiding</a> <a id="358" class="Symbol">(</a><a id="359" href="Categories.NaturalTransformation.Core.html#2132" class="Function">id</a><a id="361" class="Symbol">)</a>
<a id="363" class="Keyword">import</a> <a id="370" href="Categories.Morphism.html" class="Module">Categories.Morphism</a> <a id="390" class="Symbol">as</a> <a id="393" class="Module">Morphism</a>
<a id="402" class="Keyword">import</a> <a id="409" href="Categories.Morphism.Properties.html" class="Module">Categories.Morphism.Properties</a> <a id="440" class="Symbol">as</a> <a id="443" class="Module">Morphismₚ</a>
<a id="453" class="Keyword">import</a> <a id="460" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="490" class="Symbol">as</a> <a id="493" class="Module">MR</a>
<a id="496" class="Keyword">open</a> <a id="501" class="Keyword">import</a> <a id="508" href="Categories.Functor.Properties.html" class="Module">Categories.Functor.Properties</a>
<a id="539" class="Keyword">open</a> <a id="544" class="Keyword">import</a> <a id="551" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="568" class="Keyword">private</a>
<a id="578" class="Keyword">variable</a>
<a id="591" href="Categories.NaturalTransformation.NaturalIsomorphism.html#591" class="Generalizable">o</a> <a id="593" href="Categories.NaturalTransformation.NaturalIsomorphism.html#593" class="Generalizable"></a> <a id="595" href="Categories.NaturalTransformation.NaturalIsomorphism.html#595" class="Generalizable">e</a> <a id="597" href="Categories.NaturalTransformation.NaturalIsomorphism.html#597" class="Generalizable">o</a> <a id="600" href="Categories.NaturalTransformation.NaturalIsomorphism.html#600" class="Generalizable"></a> <a id="603" href="Categories.NaturalTransformation.NaturalIsomorphism.html#603" class="Generalizable">e</a> <a id="606" class="Symbol">:</a> <a id="608" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="618" href="Categories.NaturalTransformation.NaturalIsomorphism.html#618" class="Generalizable">B</a> <a id="620" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a> <a id="622" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a> <a id="624" href="Categories.NaturalTransformation.NaturalIsomorphism.html#624" class="Generalizable">E</a> <a id="626" class="Symbol">:</a> <a id="628" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="637" href="Categories.NaturalTransformation.NaturalIsomorphism.html#591" class="Generalizable">o</a> <a id="639" href="Categories.NaturalTransformation.NaturalIsomorphism.html#593" class="Generalizable"></a> <a id="641" href="Categories.NaturalTransformation.NaturalIsomorphism.html#595" class="Generalizable">e</a>
<a id="644" class="Keyword">record</a> <a id="NaturalIsomorphism"></a><a id="651" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="670" class="Symbol">{</a><a id="671" href="Categories.NaturalTransformation.NaturalIsomorphism.html#671" class="Bound">C</a> <a id="673" class="Symbol">:</a> <a id="675" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="684" href="Categories.NaturalTransformation.NaturalIsomorphism.html#591" class="Generalizable">o</a> <a id="686" href="Categories.NaturalTransformation.NaturalIsomorphism.html#593" class="Generalizable"></a> <a id="688" href="Categories.NaturalTransformation.NaturalIsomorphism.html#595" class="Generalizable">e</a><a id="689" class="Symbol">}</a>
<a id="717" class="Symbol">{</a><a id="718" href="Categories.NaturalTransformation.NaturalIsomorphism.html#718" class="Bound">D</a> <a id="720" class="Symbol">:</a> <a id="722" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="731" href="Categories.NaturalTransformation.NaturalIsomorphism.html#597" class="Generalizable">o</a> <a id="734" href="Categories.NaturalTransformation.NaturalIsomorphism.html#600" class="Generalizable"></a> <a id="737" href="Categories.NaturalTransformation.NaturalIsomorphism.html#603" class="Generalizable">e</a><a id="739" class="Symbol">}</a>
<a id="767" class="Symbol">(</a><a id="768" href="Categories.NaturalTransformation.NaturalIsomorphism.html#768" class="Bound">F</a> <a id="770" href="Categories.NaturalTransformation.NaturalIsomorphism.html#770" class="Bound">G</a> <a id="772" class="Symbol">:</a> <a id="774" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="782" href="Categories.NaturalTransformation.NaturalIsomorphism.html#671" class="Bound">C</a> <a id="784" href="Categories.NaturalTransformation.NaturalIsomorphism.html#718" class="Bound">D</a><a id="785" class="Symbol">)</a> <a id="787" class="Symbol">:</a> <a id="789" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="793" class="Symbol">(</a><a id="794" href="Categories.NaturalTransformation.NaturalIsomorphism.html#684" class="Bound">o</a> <a id="796" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="798" href="Categories.NaturalTransformation.NaturalIsomorphism.html#686" class="Bound"></a> <a id="800" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="802" href="Categories.NaturalTransformation.NaturalIsomorphism.html#734" class="Bound"></a> <a id="805" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="807" href="Categories.NaturalTransformation.NaturalIsomorphism.html#737" class="Bound">e</a><a id="809" class="Symbol">)</a> <a id="811" class="Keyword">where</a>
<a id="820" class="Keyword">private</a>
<a id="832" class="Keyword">module</a> <a id="NaturalIsomorphism.F"></a><a id="839" href="Categories.NaturalTransformation.NaturalIsomorphism.html#839" class="Module">F</a> <a id="841" class="Symbol">=</a> <a id="843" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="851" href="Categories.NaturalTransformation.NaturalIsomorphism.html#768" class="Bound">F</a>
<a id="857" class="Keyword">module</a> <a id="NaturalIsomorphism.G"></a><a id="864" href="Categories.NaturalTransformation.NaturalIsomorphism.html#864" class="Module">G</a> <a id="866" class="Symbol">=</a> <a id="868" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="876" href="Categories.NaturalTransformation.NaturalIsomorphism.html#770" class="Bound">G</a>
<a id="881" class="Keyword">field</a>
<a id="NaturalIsomorphism.F⇒G"></a><a id="891" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="895" class="Symbol">:</a> <a id="897" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="919" href="Categories.NaturalTransformation.NaturalIsomorphism.html#768" class="Bound">F</a> <a id="921" href="Categories.NaturalTransformation.NaturalIsomorphism.html#770" class="Bound">G</a>
<a id="NaturalIsomorphism.F⇐G"></a><a id="927" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="931" class="Symbol">:</a> <a id="933" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="955" href="Categories.NaturalTransformation.NaturalIsomorphism.html#770" class="Bound">G</a> <a id="957" href="Categories.NaturalTransformation.NaturalIsomorphism.html#768" class="Bound">F</a>
<a id="962" class="Keyword">module</a> <a id="NaturalIsomorphism.⇒"></a><a id="969" href="Categories.NaturalTransformation.NaturalIsomorphism.html#969" class="Module"></a> <a id="971" class="Symbol">=</a> <a id="973" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="995" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a>
<a id="1001" class="Keyword">module</a> <a id="NaturalIsomorphism.⇐"></a><a id="1008" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1008" class="Module"></a> <a id="1010" class="Symbol">=</a> <a id="1012" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="1034" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a>
<a id="1041" class="Keyword">field</a>
<a id="NaturalIsomorphism.iso"></a><a id="1051" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="1055" class="Symbol">:</a> <a id="1057" class="Symbol"></a> <a id="1059" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1059" class="Bound">X</a> <a id="1061" class="Symbol"></a> <a id="1063" href="Categories.Morphism.html#1528" class="Record">Morphism.Iso</a> <a id="1076" href="Categories.NaturalTransformation.NaturalIsomorphism.html#718" class="Bound">D</a> <a id="1078" class="Symbol">(</a><a id="1079" href="Categories.NaturalTransformation.Core.html#783" class="Function">⇒.η</a> <a id="1083" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1059" class="Bound">X</a><a id="1084" class="Symbol">)</a> <a id="1086" class="Symbol">(</a><a id="1087" href="Categories.NaturalTransformation.Core.html#783" class="Function">⇐.η</a> <a id="1091" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1059" class="Bound">X</a><a id="1092" class="Symbol">)</a>
<a id="1097" class="Keyword">module</a> <a id="NaturalIsomorphism.iso"></a><a id="1104" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1104" class="Module">iso</a> <a id="1108" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1108" class="Bound">X</a> <a id="1110" class="Symbol">=</a> <a id="1112" href="Categories.Morphism.html#1528" class="Module">Morphism.Iso</a> <a id="1125" class="Symbol">(</a><a id="1126" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="1130" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1108" class="Bound">X</a><a id="1131" class="Symbol">)</a>
<a id="1136" class="Keyword">open</a> <a id="1141" href="Categories.Morphism.html" class="Module">Morphism</a> <a id="1150" href="Categories.NaturalTransformation.NaturalIsomorphism.html#718" class="Bound">D</a>
<a id="NaturalIsomorphism.FX≅GX"></a><a id="1155" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1155" class="Function">FX≅GX</a> <a id="1161" class="Symbol">:</a> <a id="1163" class="Symbol"></a> <a id="1165" class="Symbol">{</a><a id="1166" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1166" class="Bound">X</a><a id="1167" class="Symbol">}</a> <a id="1169" class="Symbol"></a> <a id="1171" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="1176" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1166" class="Bound">X</a> <a id="1178" href="Categories.Morphism.html#1958" class="Record Operator"></a> <a id="1180" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1185" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1166" class="Bound">X</a>
<a id="1189" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1155" class="Function">FX≅GX</a> <a id="1195" class="Symbol">{</a><a id="1196" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1196" class="Bound">X</a><a id="1197" class="Symbol">}</a> <a id="1199" class="Symbol">=</a> <a id="1201" class="Keyword">record</a>
<a id="1212" class="Symbol">{</a> <a id="1214" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="1219" class="Symbol">=</a> <a id="1221" class="Symbol">_</a>
<a id="1227" class="Symbol">;</a> <a id="1229" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="1234" class="Symbol">=</a> <a id="1236" class="Symbol">_</a>
<a id="1242" class="Symbol">;</a> <a id="1244" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="1249" class="Symbol">=</a> <a id="1251" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="1255" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1196" class="Bound">X</a>
<a id="1261" class="Symbol">}</a>
<a id="NaturalIsomorphism.op"></a><a id="1266" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1266" class="Function">op</a> <a id="1269" class="Symbol">:</a> <a id="1271" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="1290" href="Categories.Functor.Core.html#816" class="Function">G.op</a> <a id="1295" href="Categories.Functor.Core.html#816" class="Function">F.op</a>
<a id="1302" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1266" class="Function">op</a> <a id="1305" class="Symbol">=</a> <a id="1307" class="Keyword">record</a>
<a id="1318" class="Symbol">{</a> <a id="1320" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="1324" class="Symbol">=</a> <a id="1326" href="Categories.NaturalTransformation.Core.html#1114" class="Function">⇒.op</a>
<a id="1335" class="Symbol">;</a> <a id="1337" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="1341" class="Symbol">=</a> <a id="1343" href="Categories.NaturalTransformation.Core.html#1114" class="Function">⇐.op</a>
<a id="1352" class="Symbol">;</a> <a id="1354" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="1358" class="Symbol">=</a> <a id="1360" class="Symbol">λ</a> <a id="1362" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1362" class="Bound">X</a> <a id="1364" class="Symbol"></a> <a id="1366" class="Keyword">record</a>
<a id="1379" class="Symbol">{</a> <a id="1381" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="1386" class="Symbol">=</a> <a id="1388" href="Categories.Morphism.html#1612" class="Function">iso.isoʳ</a> <a id="1397" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1362" class="Bound">X</a>
<a id="1405" class="Symbol">;</a> <a id="1407" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="1412" class="Symbol">=</a> <a id="1414" href="Categories.Morphism.html#1586" class="Function">iso.isoˡ</a> <a id="1423" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1362" class="Bound">X</a>
<a id="1431" class="Symbol">}</a>
<a id="1437" class="Symbol">}</a>
<a id="NaturalIsomorphism.op"></a><a id="1442" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1442" class="Function">op</a> <a id="1446" class="Symbol">:</a> <a id="1448" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="1467" href="Categories.Functor.Core.html#816" class="Function">F.op</a> <a id="1472" href="Categories.Functor.Core.html#816" class="Function">G.op</a>
<a id="1479" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1442" class="Function">op</a> <a id="1483" class="Symbol">=</a> <a id="1485" class="Keyword">record</a>
<a id="1496" class="Symbol">{</a> <a id="1498" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="1502" class="Symbol">=</a> <a id="1504" href="Categories.NaturalTransformation.Core.html#1114" class="Function">⇐.op</a>
<a id="1513" class="Symbol">;</a> <a id="1515" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="1519" class="Symbol">=</a> <a id="1521" href="Categories.NaturalTransformation.Core.html#1114" class="Function">⇒.op</a>
<a id="1530" class="Symbol">;</a> <a id="1532" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="1536" class="Symbol">=</a> <a id="1538" class="Symbol">λ</a> <a id="1540" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1540" class="Bound">X</a> <a id="1542" class="Symbol"></a> <a id="1544" class="Keyword">record</a>
<a id="1557" class="Symbol">{</a> <a id="1559" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="1564" class="Symbol">=</a> <a id="1566" href="Categories.Morphism.html#1586" class="Function">iso.isoˡ</a> <a id="1575" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1540" class="Bound">X</a>
<a id="1583" class="Symbol">;</a> <a id="1585" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="1590" class="Symbol">=</a> <a id="1592" href="Categories.Morphism.html#1612" class="Function">iso.isoʳ</a> <a id="1601" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1540" class="Bound">X</a>
<a id="1609" class="Symbol">}</a>
<a id="1615" class="Symbol">}</a>
<a id="1618" class="Comment">-- Like IsIso for morphisms, a natural transformation may be an isomorphism</a>
<a id="1694" class="Comment">-- if there exists some inverse to it.</a>
<a id="1733" class="Comment">-- To be consistent, there&#39;s also an IsNI for natural isomorphisms</a>
<a id="1800" class="Keyword">record</a> <a id="IsNI"></a><a id="1807" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1807" class="Record">IsNI</a> <a id="1812" class="Symbol">{</a><a id="1813" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1813" class="Bound">C</a> <a id="1815" class="Symbol">:</a> <a id="1817" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1826" href="Categories.NaturalTransformation.NaturalIsomorphism.html#591" class="Generalizable">o</a> <a id="1828" href="Categories.NaturalTransformation.NaturalIsomorphism.html#593" class="Generalizable"></a> <a id="1830" href="Categories.NaturalTransformation.NaturalIsomorphism.html#595" class="Generalizable">e</a><a id="1831" class="Symbol">}</a>
<a id="1845" class="Symbol">{</a><a id="1846" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1846" class="Bound">D</a> <a id="1848" class="Symbol">:</a> <a id="1850" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1859" href="Categories.NaturalTransformation.NaturalIsomorphism.html#597" class="Generalizable">o</a> <a id="1862" href="Categories.NaturalTransformation.NaturalIsomorphism.html#600" class="Generalizable"></a> <a id="1865" href="Categories.NaturalTransformation.NaturalIsomorphism.html#603" class="Generalizable">e</a><a id="1867" class="Symbol">}</a>
<a id="1881" class="Symbol">{</a><a id="1882" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1882" class="Bound">F</a> <a id="1884" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1884" class="Bound">G</a> <a id="1886" class="Symbol">:</a> <a id="1888" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1896" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1813" class="Bound">C</a> <a id="1898" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1846" class="Bound">D</a><a id="1899" class="Symbol">}</a>
<a id="1913" class="Symbol">(</a><a id="1914" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1914" class="Bound">F⇒G</a> <a id="1918" class="Symbol">:</a> <a id="1920" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="1942" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1882" class="Bound">F</a> <a id="1944" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1884" class="Bound">G</a><a id="1945" class="Symbol">)</a> <a id="1947" class="Symbol">:</a> <a id="1949" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1953" class="Symbol">(</a><a id="1954" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1826" class="Bound">o</a> <a id="1956" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1958" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1828" class="Bound"></a> <a id="1960" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1962" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1862" class="Bound"></a> <a id="1965" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1967" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1865" class="Bound">e</a><a id="1969" class="Symbol">)</a> <a id="1971" class="Keyword">where</a>
<a id="1979" class="Keyword">field</a>
<a id="IsNI.F⇐G"></a><a id="1989" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1989" class="Field">F⇐G</a> <a id="1993" class="Symbol">:</a> <a id="1995" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="2017" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1884" class="Bound">G</a> <a id="2019" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1882" class="Bound">F</a>
<a id="IsNI.iso"></a><a id="2025" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2025" class="Field">iso</a> <a id="2029" class="Symbol">:</a> <a id="2031" class="Symbol"></a> <a id="2033" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2033" class="Bound">X</a> <a id="2035" class="Symbol"></a> <a id="2037" href="Categories.Morphism.html#1528" class="Record">Morphism.Iso</a> <a id="2050" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1846" class="Bound">D</a> <a id="2052" class="Symbol">(</a><a id="2053" href="Categories.NaturalTransformation.Core.html#783" class="Field">NaturalTransformation.η</a> <a id="2077" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1914" class="Bound">F⇒G</a> <a id="2081" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2033" class="Bound">X</a><a id="2082" class="Symbol">)</a> <a id="2084" class="Symbol">(</a><a id="2085" href="Categories.NaturalTransformation.Core.html#783" class="Field">NaturalTransformation.η</a> <a id="2109" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1989" class="Field">F⇐G</a> <a id="2113" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2033" class="Bound">X</a><a id="2114" class="Symbol">)</a>
<a id="IsNI.natiso"></a><a id="2119" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2119" class="Function">natiso</a> <a id="2126" class="Symbol">:</a> <a id="2128" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="2147" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1882" class="Bound">F</a> <a id="2149" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1884" class="Bound">G</a>
<a id="2153" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2119" class="Function">natiso</a> <a id="2160" class="Symbol">=</a> <a id="2162" class="Keyword">record</a>
<a id="2173" class="Symbol">{</a> <a id="2175" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="2179" class="Symbol">=</a> <a id="2181" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1914" class="Bound">F⇒G</a>
<a id="2189" class="Symbol">;</a> <a id="2191" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="2195" class="Symbol">=</a> <a id="2197" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1989" class="Field">F⇐G</a>
<a id="2205" class="Symbol">;</a> <a id="2207" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="2211" class="Symbol">=</a> <a id="2213" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2025" class="Field">iso</a>
<a id="2221" class="Symbol">}</a>
<a id="2224" class="Comment">-- This helper definition lets us specify only one of the commuting</a>
<a id="2292" class="Comment">-- squares and have the other one derived.</a>
<a id="2336" class="Keyword">record</a> <a id="NIHelper"></a><a id="2343" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2343" class="Record">NIHelper</a> <a id="2352" class="Symbol">{</a><a id="2353" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2353" class="Bound">C</a> <a id="2355" class="Symbol">:</a> <a id="2357" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="2366" href="Categories.NaturalTransformation.NaturalIsomorphism.html#591" class="Generalizable">o</a> <a id="2368" href="Categories.NaturalTransformation.NaturalIsomorphism.html#593" class="Generalizable"></a> <a id="2370" href="Categories.NaturalTransformation.NaturalIsomorphism.html#595" class="Generalizable">e</a><a id="2371" class="Symbol">}</a>
<a id="2389" class="Symbol">{</a><a id="2390" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2390" class="Bound">D</a> <a id="2392" class="Symbol">:</a> <a id="2394" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="2403" href="Categories.NaturalTransformation.NaturalIsomorphism.html#597" class="Generalizable">o</a> <a id="2406" href="Categories.NaturalTransformation.NaturalIsomorphism.html#600" class="Generalizable"></a> <a id="2409" href="Categories.NaturalTransformation.NaturalIsomorphism.html#603" class="Generalizable">e</a><a id="2411" class="Symbol">}</a>
<a id="2429" class="Symbol">(</a><a id="2430" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2430" class="Bound">F</a> <a id="2432" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2432" class="Bound">G</a> <a id="2434" class="Symbol">:</a> <a id="2436" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2444" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2353" class="Bound">C</a> <a id="2446" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2390" class="Bound">D</a><a id="2447" class="Symbol">)</a> <a id="2449" class="Symbol">:</a> <a id="2451" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2455" class="Symbol">(</a><a id="2456" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2366" class="Bound">o</a> <a id="2458" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="2460" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2368" class="Bound"></a> <a id="2462" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="2464" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2370" class="Bound">e</a> <a id="2466" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="2468" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2403" class="Bound">o</a> <a id="2471" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="2473" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2406" class="Bound"></a> <a id="2476" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="2478" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2409" class="Bound">e</a><a id="2480" class="Symbol">)</a> <a id="2482" class="Keyword">where</a>
<a id="2490" class="Keyword">open</a> <a id="2495" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="2503" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2430" class="Bound">F</a> <a id="2505" class="Keyword">using</a> <a id="2511" class="Symbol">(</a><a id="2512" href="Categories.Functor.Core.html#432" class="Field">F₀</a><a id="2514" class="Symbol">;</a> <a id="2516" href="Categories.Functor.Core.html#455" class="Field">F₁</a><a id="2518" class="Symbol">)</a>
<a id="2522" class="Keyword">open</a> <a id="2527" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="2535" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2432" class="Bound">G</a> <a id="2537" class="Keyword">using</a> <a id="2543" class="Symbol">()</a> <a id="2546" class="Keyword">renaming</a> <a id="2555" class="Symbol">(</a><a id="2556" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="2559" class="Symbol">to</a> <a id="2562" class="Field">G₀</a><a id="2564" class="Symbol">;</a> <a id="2566" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2569" class="Symbol">to</a> <a id="2572" class="Field">G₁</a><a id="2574" class="Symbol">)</a>
<a id="2578" class="Keyword">open</a> <a id="2583" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="2592" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2390" class="Bound">D</a>
<a id="2596" class="Keyword">field</a>
<a id="NIHelper.η"></a><a id="2606" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2606" class="Field">η</a> <a id="2618" class="Symbol">:</a> <a id="2620" class="Symbol"></a> <a id="2622" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2622" class="Bound">X</a> <a id="2624" class="Symbol"></a> <a id="2626" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2390" class="Bound">D</a> <a id="2628" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="2630" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="2633" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2622" class="Bound">X</a> <a id="2635" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="2637" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2562" class="Function">G₀</a> <a id="2640" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2622" class="Bound">X</a> <a id="2642" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="NIHelper.η⁻¹"></a><a id="2648" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2648" class="Field">η⁻¹</a> <a id="2660" class="Symbol">:</a> <a id="2662" class="Symbol"></a> <a id="2664" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2664" class="Bound">X</a> <a id="2666" class="Symbol"></a> <a id="2668" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2390" class="Bound">D</a> <a id="2670" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="2672" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2562" class="Function">G₀</a> <a id="2675" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2664" class="Bound">X</a> <a id="2677" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="2679" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="2682" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2664" class="Bound">X</a> <a id="2684" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="NIHelper.commute"></a><a id="2690" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2690" class="Field">commute</a> <a id="2702" class="Symbol">:</a> <a id="2704" class="Symbol"></a> <a id="2706" class="Symbol">{</a><a id="2707" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2707" class="Bound">X</a> <a id="2709" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2709" class="Bound">Y</a><a id="2710" class="Symbol">}</a> <a id="2712" class="Symbol">(</a><a id="2713" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2713" class="Bound">f</a> <a id="2715" class="Symbol">:</a> <a id="2717" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2353" class="Bound">C</a> <a id="2719" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="2721" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2707" class="Bound">X</a> <a id="2723" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="2725" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2709" class="Bound">Y</a> <a id="2727" href="Categories.Category.html#502" class="Function Operator">]</a><a id="2728" class="Symbol">)</a> <a id="2730" class="Symbol"></a> <a id="2732" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2606" class="Field">η</a> <a id="2734" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2709" class="Bound">Y</a> <a id="2736" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2738" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="2741" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2713" class="Bound">f</a> <a id="2743" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="2745" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2572" class="Function">G₁</a> <a id="2748" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2713" class="Bound">f</a> <a id="2750" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="2752" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2606" class="Field">η</a> <a id="2754" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2707" class="Bound">X</a>
<a id="NIHelper.iso"></a><a id="2760" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2760" class="Field">iso</a> <a id="2772" class="Symbol">:</a> <a id="2774" class="Symbol"></a> <a id="2776" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2776" class="Bound">X</a> <a id="2778" class="Symbol"></a> <a id="2780" href="Categories.Morphism.html#1528" class="Record">Morphism.Iso</a> <a id="2793" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2390" class="Bound">D</a> <a id="2795" class="Symbol">(</a><a id="2796" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2606" class="Field">η</a> <a id="2798" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2776" class="Bound">X</a><a id="2799" class="Symbol">)</a> <a id="2801" class="Symbol">(</a><a id="2802" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2648" class="Field">η⁻¹</a> <a id="2806" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2776" class="Bound">X</a><a id="2807" class="Symbol">)</a>
<a id="niHelper"></a><a id="2810" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2810" class="Function">niHelper</a> <a id="2819" class="Symbol">:</a> <a id="2821" class="Symbol"></a> <a id="2823" class="Symbol">{</a><a id="2824" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2824" class="Bound">F</a> <a id="2826" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2826" class="Bound">G</a> <a id="2828" class="Symbol">:</a> <a id="2830" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2838" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a> <a id="2840" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a><a id="2841" class="Symbol">}</a> <a id="2843" class="Symbol"></a> <a id="2845" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2343" class="Record">NIHelper</a> <a id="2854" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2824" class="Bound">F</a> <a id="2856" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2826" class="Bound">G</a> <a id="2858" class="Symbol"></a> <a id="2860" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="2879" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2824" class="Bound">F</a> <a id="2881" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2826" class="Bound">G</a>
<a id="2883" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2810" class="Function">niHelper</a> <a id="2892" class="Symbol">{</a><a id="2893" class="Argument">D</a> <a id="2895" class="Symbol">=</a> <a id="2897" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2897" class="Bound">D</a><a id="2898" class="Symbol">}</a> <a id="2900" class="Symbol">{</a><a id="2901" class="Argument">F</a> <a id="2903" class="Symbol">=</a> <a id="2905" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2905" class="Bound">F</a><a id="2906" class="Symbol">}</a> <a id="2908" class="Symbol">{</a><a id="2909" class="Argument">G</a> <a id="2911" class="Symbol">=</a> <a id="2913" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2913" class="Bound">G</a><a id="2914" class="Symbol">}</a> <a id="2916" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2916" class="Bound">α</a> <a id="2918" class="Symbol">=</a> <a id="2920" class="Keyword">record</a>
<a id="2929" class="Symbol">{</a> <a id="2931" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="2935" class="Symbol">=</a> <a id="2937" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="2946" class="Keyword">record</a> <a id="2953" class="Symbol">{</a> <a id="2955" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="2957" class="Symbol">=</a> <a id="2959" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2606" class="Field">η</a> <a id="2961" class="Symbol">;</a> <a id="2963" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="2971" class="Symbol">=</a> <a id="2973" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2690" class="Field">commute</a> <a id="2981" class="Symbol">}</a>
<a id="2985" class="Symbol">;</a> <a id="2987" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="2991" class="Symbol">=</a> <a id="2993" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="3002" class="Keyword">record</a>
<a id="3013" class="Symbol">{</a> <a id="3015" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="3017" class="Symbol">=</a> <a id="3019" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2648" class="Field">η⁻¹</a>
<a id="3027" class="Symbol">;</a> <a id="3029" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="3037" class="Symbol">=</a> <a id="3039" class="Symbol">λ</a> <a id="3041" class="Symbol">{</a><a id="3042" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3042" class="Bound">X</a> <a id="3044" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3044" class="Bound">Y</a><a id="3045" class="Symbol">}</a> <a id="3047" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3047" class="Bound">f</a> <a id="3049" class="Symbol"></a> <a id="3051" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="3065" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2648" class="Field">η⁻¹</a> <a id="3069" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3044" class="Bound">Y</a> <a id="3071" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3073" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3076" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2913" class="Bound">G</a> <a id="3078" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3047" class="Bound">f</a> <a id="3100" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="3104" href="Categories.Morphism.Reasoning.Core.html#6665" class="Function">cancelʳ</a> <a id="3112" class="Symbol">(</a><a id="3113" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="3118" class="Symbol">(</a><a id="3119" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2760" class="Field">iso</a> <a id="3123" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3042" class="Bound">X</a><a id="3124" class="Symbol">))</a> <a id="3127" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="3137" class="Symbol">((</a><a id="3139" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2648" class="Field">η⁻¹</a> <a id="3143" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3044" class="Bound">Y</a> <a id="3145" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3147" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3150" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2913" class="Bound">G</a> <a id="3152" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3047" class="Bound">f</a><a id="3153" class="Symbol">)</a> <a id="3155" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3157" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2606" class="Field">η</a> <a id="3159" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3042" class="Bound">X</a><a id="3160" class="Symbol">)</a> <a id="3162" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3164" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2648" class="Field">η⁻¹</a> <a id="3168" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3042" class="Bound">X</a> <a id="3172" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="3176" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="3182" class="Symbol">(</a><a id="3183" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2690" class="Field">commute</a> <a id="3191" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3047" class="Bound">f</a><a id="3192" class="Symbol">)</a> <a id="3194" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="3202" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="3212" class="Symbol">(</a><a id="3213" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2648" class="Field">η⁻¹</a> <a id="3217" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3044" class="Bound">Y</a> <a id="3219" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3221" class="Symbol">(</a><a id="3222" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2606" class="Field">η</a> <a id="3224" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3044" class="Bound">Y</a> <a id="3226" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3228" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3231" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2905" class="Bound">F</a> <a id="3233" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3047" class="Bound">f</a><a id="3234" class="Symbol">))</a> <a id="3237" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3239" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2648" class="Field">η⁻¹</a> <a id="3243" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3042" class="Bound">X</a> <a id="3247" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3250" href="Categories.Morphism.Reasoning.Core.html#6851" class="Function">cancelˡ</a> <a id="3258" class="Symbol">(</a><a id="3259" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="3264" class="Symbol">(</a><a id="3265" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2760" class="Field">iso</a> <a id="3269" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3044" class="Bound">Y</a><a id="3270" class="Symbol">))</a> <a id="3273" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="3281" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3291" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3294" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2905" class="Bound">F</a> <a id="3296" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3047" class="Bound">f</a> <a id="3298" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3300" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2648" class="Field">η⁻¹</a> <a id="3304" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3042" class="Bound">X</a> <a id="3326" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="3332" class="Symbol">}</a>
<a id="3336" class="Symbol">;</a> <a id="3338" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="3342" class="Symbol">=</a> <a id="3344" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2760" class="Field">iso</a>
<a id="3350" class="Symbol">}</a>
<a id="3354" class="Keyword">where</a>
<a id="3364" class="Keyword">open</a> <a id="3369" href="Categories.Morphism.html#1528" class="Module">Morphism.Iso</a>
<a id="3386" class="Keyword">open</a> <a id="3391" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2343" class="Module">NIHelper</a> <a id="3400" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2916" class="Bound">α</a>
<a id="3406" class="Keyword">open</a> <a id="3411" href="Categories.Functor.Core.html#248" class="Module">Functor</a>
<a id="3423" class="Keyword">open</a> <a id="3428" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="3437" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2897" class="Bound">D</a>
<a id="3443" class="Keyword">open</a> <a id="3448" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="3465" class="Keyword">open</a> <a id="3470" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="3473" href="Categories.NaturalTransformation.NaturalIsomorphism.html#2897" class="Bound">D</a>
<a id="3476" class="Keyword">open</a> <a id="3481" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Module">NaturalIsomorphism</a>
<a id="3501" class="Keyword">infixr</a> <a id="3508" class="Number">9</a> <a id="3510" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3660" class="Function Operator">_ⓘᵥ_</a> <a id="3515" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3893" class="Function Operator">_ⓘₕ_</a> <a id="3520" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4354" class="Function Operator">_ⓘˡ_</a> <a id="3525" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4560" class="Function Operator">_ⓘʳ_</a>
<a id="3530" class="Keyword">infix</a> <a id="3536" class="Number">4</a> <a id="3538" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator">_≃_</a>
<a id="3543" class="Comment">-- commonly used short-hand in CT for NaturalIsomorphism</a>
<a id="_≃_"></a><a id="3600" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator">_≃_</a> <a id="3604" class="Symbol">:</a> <a id="3606" class="Symbol">(</a><a id="3607" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3607" class="Bound">F</a> <a id="3609" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3609" class="Bound">G</a> <a id="3611" class="Symbol">:</a> <a id="3613" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3621" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a> <a id="3623" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a><a id="3624" class="Symbol">)</a> <a id="3626" class="Symbol"></a> <a id="3628" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3632" class="Symbol">_</a>
<a id="3634" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator">_≃_</a> <a id="3638" class="Symbol">=</a> <a id="3640" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a>
<a id="_ⓘᵥ_"></a><a id="3660" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3660" class="Function Operator">_ⓘᵥ_</a> <a id="3665" class="Symbol">:</a> <a id="3667" class="Symbol">{</a><a id="3668" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3668" class="Bound">F</a> <a id="3670" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3670" class="Bound">G</a> <a id="3672" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3672" class="Bound">H</a> <a id="3674" class="Symbol">:</a> <a id="3676" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3684" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a> <a id="3686" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a><a id="3687" class="Symbol">}</a> <a id="3689" class="Symbol"></a> <a id="3691" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3670" class="Bound">G</a> <a id="3693" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="3695" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3672" class="Bound">H</a> <a id="3697" class="Symbol"></a> <a id="3699" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3668" class="Bound">F</a> <a id="3701" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="3703" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3670" class="Bound">G</a> <a id="3705" class="Symbol"></a> <a id="3707" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3668" class="Bound">F</a> <a id="3709" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="3711" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3672" class="Bound">H</a>
<a id="3713" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3660" class="Function Operator">_ⓘᵥ_</a> <a id="3718" class="Symbol">{</a><a id="3719" class="Argument">D</a> <a id="3721" class="Symbol">=</a> <a id="3723" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3723" class="Bound">D</a><a id="3724" class="Symbol">}</a> <a id="3726" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3726" class="Bound">α</a> <a id="3728" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3728" class="Bound">β</a> <a id="3730" class="Symbol">=</a> <a id="3732" class="Keyword">record</a>
<a id="3741" class="Symbol">{</a> <a id="3743" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="3747" class="Symbol">=</a> <a id="3749" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="3753" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3726" class="Bound">α</a> <a id="3755" href="Categories.NaturalTransformation.Core.html#2439" class="Function Operator">∘ᵥ</a> <a id="3758" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="3762" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3728" class="Bound">β</a>
<a id="3766" class="Symbol">;</a> <a id="3768" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="3772" class="Symbol">=</a> <a id="3774" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="3778" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3728" class="Bound">β</a> <a id="3780" href="Categories.NaturalTransformation.Core.html#2439" class="Function Operator">∘ᵥ</a> <a id="3783" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="3787" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3726" class="Bound">α</a>
<a id="3791" class="Symbol">;</a> <a id="3793" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="3797" class="Symbol">=</a> <a id="3799" class="Symbol">λ</a> <a id="3801" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3801" class="Bound">X</a> <a id="3803" class="Symbol"></a> <a id="3805" href="Categories.Morphism.Properties.html#1137" class="Function">Iso-∘</a> <a id="3811" class="Symbol">(</a><a id="3812" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="3816" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3728" class="Bound">β</a> <a id="3818" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3801" class="Bound">X</a><a id="3819" class="Symbol">)</a> <a id="3821" class="Symbol">(</a><a id="3822" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="3826" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3726" class="Bound">α</a> <a id="3828" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3801" class="Bound">X</a><a id="3829" class="Symbol">)</a>
<a id="3833" class="Symbol">}</a>
<a id="3837" class="Keyword">where</a> <a id="3843" class="Keyword">open</a> <a id="3848" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Module">NaturalIsomorphism</a>
<a id="3875" class="Keyword">open</a> <a id="3880" href="Categories.Morphism.Properties.html" class="Module">Morphismₚ</a> <a id="3890" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3723" class="Bound">D</a>
<a id="_ⓘₕ_"></a><a id="3893" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3893" class="Function Operator">_ⓘₕ_</a> <a id="3898" class="Symbol">:</a> <a id="3900" class="Symbol">{</a><a id="3901" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3901" class="Bound">H</a> <a id="3903" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3903" class="Bound">I</a> <a id="3905" class="Symbol">:</a> <a id="3907" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3915" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a> <a id="3917" href="Categories.NaturalTransformation.NaturalIsomorphism.html#624" class="Generalizable">E</a><a id="3918" class="Symbol">}</a> <a id="3920" class="Symbol">{</a><a id="3921" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3921" class="Bound">F</a> <a id="3923" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3923" class="Bound">G</a> <a id="3925" class="Symbol">:</a> <a id="3927" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3935" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a> <a id="3937" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a><a id="3938" class="Symbol">}</a> <a id="3940" class="Symbol"></a> <a id="3942" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3901" class="Bound">H</a> <a id="3944" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="3946" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3903" class="Bound">I</a> <a id="3948" class="Symbol"></a> <a id="3950" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3921" class="Bound">F</a> <a id="3952" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="3954" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3923" class="Bound">G</a> <a id="3956" class="Symbol"></a> <a id="3958" class="Symbol">(</a><a id="3959" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3901" class="Bound">H</a> <a id="3961" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="3964" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3921" class="Bound">F</a><a id="3965" class="Symbol">)</a> <a id="3967" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="3969" class="Symbol">(</a><a id="3970" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3903" class="Bound">I</a> <a id="3972" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="3975" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3923" class="Bound">G</a><a id="3976" class="Symbol">)</a>
<a id="3978" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3893" class="Function Operator">_ⓘₕ_</a> <a id="3983" class="Symbol">{</a><a id="3984" class="Argument">E</a> <a id="3986" class="Symbol">=</a> <a id="3988" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3988" class="Bound">E</a><a id="3989" class="Symbol">}</a> <a id="3991" class="Symbol">{</a><a id="3992" class="Argument">I</a> <a id="3994" class="Symbol">=</a> <a id="3996" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3996" class="Bound">I</a><a id="3997" class="Symbol">}</a> <a id="3999" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3999" class="Bound">α</a> <a id="4001" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4001" class="Bound">β</a> <a id="4003" class="Symbol">=</a> <a id="4005" class="Keyword">record</a>
<a id="4014" class="Symbol">{</a> <a id="4016" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="4020" class="Symbol">=</a> <a id="4022" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="4026" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3999" class="Bound">α</a> <a id="4028" href="Categories.NaturalTransformation.Core.html#2919" class="Function Operator">∘ₕ</a> <a id="4031" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="4035" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4001" class="Bound">β</a>
<a id="4039" class="Symbol">;</a> <a id="4041" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="4045" class="Symbol">=</a> <a id="4047" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="4051" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3999" class="Bound">α</a> <a id="4053" href="Categories.NaturalTransformation.Core.html#2919" class="Function Operator">∘ₕ</a> <a id="4056" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="4060" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4001" class="Bound">β</a>
<a id="4064" class="Symbol">;</a> <a id="4066" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="4070" class="Symbol">=</a> <a id="4072" class="Symbol">λ</a> <a id="4074" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4074" class="Bound">X</a> <a id="4076" class="Symbol"></a> <a id="4078" href="Categories.Morphism.Properties.html#472" class="Function">Iso-resp-≈</a> <a id="4089" class="Symbol">(</a><a id="4090" href="Categories.Morphism.Properties.html#1137" class="Function">Iso-∘</a> <a id="4096" class="Symbol">(</a><a id="4097" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="4101" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3999" class="Bound">α</a> <a id="4103" class="Symbol">_)</a> <a id="4106" class="Symbol">(</a><a id="4107" href="Categories.Functor.Properties.html#2843" class="Function Operator">[</a> <a id="4109" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3996" class="Bound">I</a> <a id="4111" href="Categories.Functor.Properties.html#2843" class="Function Operator">]-resp-Iso</a> <a id="4122" class="Symbol">(</a><a id="4123" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="4127" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4001" class="Bound">β</a> <a id="4129" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4074" class="Bound">X</a><a id="4130" class="Symbol">)))</a>
<a id="4161" href="Relation.Binary.Structures.html#1596" class="Function">E.Equiv.refl</a> <a id="4174" class="Symbol">(</a><a id="4175" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="4183" class="Symbol">(</a><a id="4184" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="4188" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3999" class="Bound">α</a><a id="4189" class="Symbol">)</a> <a id="4191" class="Symbol">(</a><a id="4192" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4194" class="Symbol">(</a><a id="4195" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="4199" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4001" class="Bound">β</a><a id="4200" class="Symbol">)</a> <a id="4202" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4074" class="Bound">X</a><a id="4203" class="Symbol">))</a>
<a id="4208" class="Symbol">}</a>
<a id="4212" class="Keyword">where</a> <a id="4218" class="Keyword">open</a> <a id="4223" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Module">NaturalIsomorphism</a>
<a id="4250" class="Keyword">open</a> <a id="4255" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a>
<a id="4285" class="Keyword">module</a> <a id="4292" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4292" class="Module">E</a> <a id="4294" class="Symbol">=</a> <a id="4296" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="4305" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3988" class="Bound">E</a>
<a id="4315" class="Keyword">open</a> <a id="4320" href="Categories.Category.Core.html#1530" class="Module">E.Equiv</a>
<a id="4336" class="Keyword">open</a> <a id="4341" href="Categories.Morphism.Properties.html" class="Module">Morphismₚ</a> <a id="4351" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3988" class="Bound">E</a>
<a id="_ⓘˡ_"></a><a id="4354" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4354" class="Function Operator">_ⓘˡ_</a> <a id="4359" class="Symbol">:</a> <a id="4361" class="Symbol">{</a><a id="4362" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4362" class="Bound">F</a> <a id="4364" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4364" class="Bound">G</a> <a id="4366" class="Symbol">:</a> <a id="4368" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="4376" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a> <a id="4378" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a><a id="4379" class="Symbol">}</a> <a id="4381" class="Symbol"></a> <a id="4383" class="Symbol">(</a><a id="4384" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4384" class="Bound">H</a> <a id="4386" class="Symbol">:</a> <a id="4388" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="4396" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a> <a id="4398" href="Categories.NaturalTransformation.NaturalIsomorphism.html#624" class="Generalizable">E</a><a id="4399" class="Symbol">)</a> <a id="4401" class="Symbol"></a> <a id="4403" class="Symbol">(</a><a id="4404" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4404" class="Bound">η</a> <a id="4406" class="Symbol">:</a> <a id="4408" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4362" class="Bound">F</a> <a id="4410" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="4412" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4364" class="Bound">G</a><a id="4413" class="Symbol">)</a> <a id="4415" class="Symbol"></a> <a id="4417" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4384" class="Bound">H</a> <a id="4419" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="4422" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4362" class="Bound">F</a> <a id="4424" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="4426" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4384" class="Bound">H</a> <a id="4428" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="4431" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4364" class="Bound">G</a>
<a id="4433" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4433" class="Bound">H</a> <a id="4435" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4354" class="Function Operator">ⓘˡ</a> <a id="4438" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4438" class="Bound">η</a> <a id="4440" class="Symbol">=</a> <a id="4442" class="Keyword">record</a>
<a id="4451" class="Symbol">{</a> <a id="4453" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="4457" class="Symbol">=</a> <a id="4459" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4433" class="Bound">H</a> <a id="4461" href="Categories.NaturalTransformation.Core.html#3439" class="Function Operator">∘ˡ</a> <a id="4464" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="4468" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4438" class="Bound">η</a>
<a id="4472" class="Symbol">;</a> <a id="4474" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="4478" class="Symbol">=</a> <a id="4480" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4433" class="Bound">H</a> <a id="4482" href="Categories.NaturalTransformation.Core.html#3439" class="Function Operator">∘ˡ</a> <a id="4485" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="4489" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4438" class="Bound">η</a>
<a id="4493" class="Symbol">;</a> <a id="4495" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="4499" class="Symbol">=</a> <a id="4501" class="Symbol">λ</a> <a id="4503" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4503" class="Bound">X</a> <a id="4505" class="Symbol"></a> <a id="4507" href="Categories.Functor.Properties.html#2843" class="Function Operator">[</a> <a id="4509" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4433" class="Bound">H</a> <a id="4511" href="Categories.Functor.Properties.html#2843" class="Function Operator">]-resp-Iso</a> <a id="4522" class="Symbol">(</a><a id="4523" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="4527" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4438" class="Bound">η</a> <a id="4529" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4503" class="Bound">X</a><a id="4530" class="Symbol">)</a>
<a id="4534" class="Symbol">}</a>
<a id="4538" class="Keyword">where</a> <a id="4544" class="Keyword">open</a> <a id="4549" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="4557" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4433" class="Bound">H</a>
<a id="_ⓘʳ_"></a><a id="4560" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4560" class="Function Operator">_ⓘʳ_</a> <a id="4565" class="Symbol">:</a> <a id="4567" class="Symbol">{</a><a id="4568" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4568" class="Bound">F</a> <a id="4570" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4570" class="Bound">G</a> <a id="4572" class="Symbol">:</a> <a id="4574" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="4582" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a> <a id="4584" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a><a id="4585" class="Symbol">}</a> <a id="4587" class="Symbol"></a> <a id="4589" class="Symbol">(</a><a id="4590" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4590" class="Bound">η</a> <a id="4592" class="Symbol">:</a> <a id="4594" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4568" class="Bound">F</a> <a id="4596" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="4598" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4570" class="Bound">G</a><a id="4599" class="Symbol">)</a> <a id="4601" class="Symbol"></a> <a id="4603" class="Symbol">(</a><a id="4604" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4604" class="Bound">K</a> <a id="4606" class="Symbol">:</a> <a id="4608" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="4616" href="Categories.NaturalTransformation.NaturalIsomorphism.html#624" class="Generalizable">E</a> <a id="4618" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a><a id="4619" class="Symbol">)</a> <a id="4621" class="Symbol"></a> <a id="4623" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4568" class="Bound">F</a> <a id="4625" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="4628" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4604" class="Bound">K</a> <a id="4630" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="4632" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4570" class="Bound">G</a> <a id="4634" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="4637" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4604" class="Bound">K</a>
<a id="4639" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4639" class="Bound">η</a> <a id="4641" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4560" class="Function Operator">ⓘʳ</a> <a id="4644" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4644" class="Bound">K</a> <a id="4646" class="Symbol">=</a> <a id="4648" class="Keyword">record</a>
<a id="4657" class="Symbol">{</a> <a id="4659" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="4663" class="Symbol">=</a> <a id="4665" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="4669" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4639" class="Bound">η</a> <a id="4671" href="Categories.NaturalTransformation.Core.html#3784" class="Function Operator">∘ʳ</a> <a id="4674" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4644" class="Bound">K</a>
<a id="4678" class="Symbol">;</a> <a id="4680" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="4684" class="Symbol">=</a> <a id="4686" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="4690" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4639" class="Bound">η</a> <a id="4692" href="Categories.NaturalTransformation.Core.html#3784" class="Function Operator">∘ʳ</a> <a id="4695" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4644" class="Bound">K</a>
<a id="4699" class="Symbol">;</a> <a id="4701" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="4705" class="Symbol">=</a> <a id="4707" class="Symbol">λ</a> <a id="4709" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4709" class="Bound">X</a> <a id="4711" class="Symbol"></a> <a id="4713" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="4717" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4639" class="Bound">η</a> <a id="4719" class="Symbol">(</a><a id="4720" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="4723" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4709" class="Bound">X</a><a id="4724" class="Symbol">)</a>
<a id="4728" class="Symbol">}</a>
<a id="4732" class="Keyword">where</a> <a id="4738" class="Keyword">open</a> <a id="4743" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="4751" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4644" class="Bound">K</a>
<a id="refl"></a><a id="4754" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4754" class="Function">refl</a> <a id="4759" class="Symbol">:</a> <a id="4761" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a> <a id="4771" class="Symbol">(</a><a id="4772" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="4791" class="Symbol">{</a><a id="4792" class="Argument">C</a> <a id="4794" class="Symbol">=</a> <a id="4796" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a><a id="4797" class="Symbol">}</a> <a id="4799" class="Symbol">{</a><a id="4800" class="Argument">D</a> <a id="4802" class="Symbol">=</a> <a id="4804" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a><a id="4805" class="Symbol">})</a>
<a id="4808" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4754" class="Function">refl</a> <a id="4813" class="Symbol">{</a><a id="4814" class="Argument">D</a> <a id="4816" class="Symbol">=</a> <a id="4818" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4818" class="Bound">D</a><a id="4819" class="Symbol">}</a> <a id="4821" class="Symbol">=</a> <a id="4823" class="Keyword">record</a>
<a id="4832" class="Symbol">{</a> <a id="4834" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="4838" class="Symbol">=</a> <a id="4840" href="Categories.NaturalTransformation.Core.html#2132" class="Function">NT.id</a>
<a id="4848" class="Symbol">;</a> <a id="4850" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="4854" class="Symbol">=</a> <a id="4856" href="Categories.NaturalTransformation.Core.html#2132" class="Function">NT.id</a>
<a id="4864" class="Symbol">;</a> <a id="4866" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="4870" class="Symbol">=</a> <a id="4872" class="Symbol">λ</a> <a id="4874" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4874" class="Bound">_</a> <a id="4876" class="Symbol"></a> <a id="4878" class="Keyword">record</a>
<a id="4889" class="Symbol">{</a> <a id="4891" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="4896" class="Symbol">=</a> <a id="4898" href="Categories.Category.Core.html#1096" class="Field">Category.identityˡ</a> <a id="4917" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4818" class="Bound">D</a>
<a id="4923" class="Symbol">;</a> <a id="4925" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="4930" class="Symbol">=</a> <a id="4932" href="Categories.Category.Core.html#1145" class="Field">Category.identityʳ</a> <a id="4951" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4818" class="Bound">D</a>
<a id="4957" class="Symbol">}</a>
<a id="4961" class="Symbol">}</a>
<a id="sym"></a><a id="4964" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4964" class="Function">sym</a> <a id="4968" class="Symbol">:</a> <a id="4970" href="Relation.Binary.Definitions.html#1587" class="Function">Symmetric</a> <a id="4980" class="Symbol">(</a><a id="4981" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="5000" class="Symbol">{</a><a id="5001" class="Argument">C</a> <a id="5003" class="Symbol">=</a> <a id="5005" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a><a id="5006" class="Symbol">}</a> <a id="5008" class="Symbol">{</a><a id="5009" class="Argument">D</a> <a id="5011" class="Symbol">=</a> <a id="5013" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a><a id="5014" class="Symbol">})</a>
<a id="5017" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4964" class="Function">sym</a> <a id="5021" class="Symbol">{</a><a id="5022" class="Argument">D</a> <a id="5024" class="Symbol">=</a> <a id="5026" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5026" class="Bound">D</a><a id="5027" class="Symbol">}</a> <a id="5029" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5029" class="Bound">F≃G</a> <a id="5033" class="Symbol">=</a> <a id="5035" class="Keyword">record</a>
<a id="5044" class="Symbol">{</a> <a id="5046" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="5050" class="Symbol">=</a> <a id="5052" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="5056" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5029" class="Bound">F≃G</a>
<a id="5062" class="Symbol">;</a> <a id="5064" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="5068" class="Symbol">=</a> <a id="5070" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="5074" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5029" class="Bound">F≃G</a>
<a id="5080" class="Symbol">;</a> <a id="5082" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="5086" class="Symbol">=</a> <a id="5088" class="Symbol">λ</a> <a id="5090" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5090" class="Bound">X</a> <a id="5092" class="Symbol"></a>
<a id="5098" class="Keyword">let</a> <a id="5102" class="Keyword">open</a> <a id="5107" href="Categories.Morphism.html#1528" class="Module">Iso</a> <a id="5111" class="Symbol">(</a><a id="5112" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="5116" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5029" class="Bound">F≃G</a> <a id="5120" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5090" class="Bound">X</a><a id="5121" class="Symbol">)</a> <a id="5123" class="Keyword">in</a> <a id="5126" class="Keyword">record</a>
<a id="5137" class="Symbol">{</a> <a id="5139" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="5144" class="Symbol">=</a> <a id="5146" href="Categories.Morphism.html#1612" class="Function">isoʳ</a>
<a id="5155" class="Symbol">;</a> <a id="5157" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="5162" class="Symbol">=</a> <a id="5164" href="Categories.Morphism.html#1586" class="Function">isoˡ</a>
<a id="5173" class="Symbol">}</a>
<a id="5177" class="Symbol">}</a>
<a id="5181" class="Keyword">where</a> <a id="5187" class="Keyword">open</a> <a id="5192" href="Categories.Morphism.html" class="Module">Morphism</a> <a id="5201" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5026" class="Bound">D</a>
<a id="trans"></a><a id="5204" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5204" class="Function">trans</a> <a id="5210" class="Symbol">:</a> <a id="5212" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="5223" class="Symbol">(</a><a id="5224" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="5243" class="Symbol">{</a><a id="5244" class="Argument">C</a> <a id="5246" class="Symbol">=</a> <a id="5248" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a><a id="5249" class="Symbol">}</a> <a id="5251" class="Symbol">{</a><a id="5252" class="Argument">D</a> <a id="5254" class="Symbol">=</a> <a id="5256" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a><a id="5257" class="Symbol">})</a>
<a id="5260" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5204" class="Function">trans</a> <a id="5266" class="Symbol">=</a> <a id="5268" href="Function.Base.html#1638" class="Function">flip</a> <a id="5273" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3660" class="Function Operator">_ⓘᵥ_</a>
<a id="isEquivalence"></a><a id="5279" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5279" class="Function">isEquivalence</a> <a id="5293" class="Symbol">:</a> <a id="5295" class="Symbol">{</a><a id="5296" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5296" class="Bound">C</a> <a id="5298" class="Symbol">:</a> <a id="5300" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="5309" href="Categories.NaturalTransformation.NaturalIsomorphism.html#591" class="Generalizable">o</a> <a id="5311" href="Categories.NaturalTransformation.NaturalIsomorphism.html#593" class="Generalizable"></a> <a id="5313" href="Categories.NaturalTransformation.NaturalIsomorphism.html#595" class="Generalizable">e</a><a id="5314" class="Symbol">}</a> <a id="5316" class="Symbol">{</a><a id="5317" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5317" class="Bound">D</a> <a id="5319" class="Symbol">:</a> <a id="5321" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="5330" href="Categories.NaturalTransformation.NaturalIsomorphism.html#597" class="Generalizable">o</a> <a id="5333" href="Categories.NaturalTransformation.NaturalIsomorphism.html#600" class="Generalizable"></a> <a id="5336" href="Categories.NaturalTransformation.NaturalIsomorphism.html#603" class="Generalizable">e</a><a id="5338" class="Symbol">}</a> <a id="5340" class="Symbol"></a> <a id="5342" href="Relation.Binary.Structures.html#1550" class="Record">IsEquivalence</a> <a id="5356" class="Symbol">(</a><a id="5357" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="5376" class="Symbol">{</a><a id="5377" class="Argument">C</a> <a id="5379" class="Symbol">=</a> <a id="5381" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5296" class="Bound">C</a><a id="5382" class="Symbol">}</a> <a id="5384" class="Symbol">{</a><a id="5385" class="Argument">D</a> <a id="5387" class="Symbol">=</a> <a id="5389" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5317" class="Bound">D</a><a id="5390" class="Symbol">})</a>
<a id="5393" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5279" class="Function">isEquivalence</a> <a id="5407" class="Symbol">=</a> <a id="5409" class="Keyword">record</a>
<a id="5418" class="Symbol">{</a> <a id="5420" href="Relation.Binary.Structures.html#1596" class="Field">refl</a> <a id="5426" class="Symbol">=</a> <a id="5428" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4754" class="Function">refl</a>
<a id="5435" class="Symbol">;</a> <a id="5437" href="Relation.Binary.Structures.html#1622" class="Field">sym</a> <a id="5443" class="Symbol">=</a> <a id="5445" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4964" class="Function">sym</a>
<a id="5451" class="Symbol">;</a> <a id="5453" href="Relation.Binary.Structures.html#1648" class="Field">trans</a> <a id="5459" class="Symbol">=</a> <a id="5461" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5204" class="Function">trans</a>
<a id="5469" class="Symbol">}</a>
<a id="5472" class="Keyword">module</a> <a id="≃"></a><a id="5479" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5479" class="Module"></a> <a id="5481" class="Symbol">{</a><a id="5482" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5482" class="Bound">o</a> <a id="5484" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5484" class="Bound"></a> <a id="5486" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5486" class="Bound">e</a> <a id="5488" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5488" class="Bound">o</a> <a id="5491" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5491" class="Bound"></a> <a id="5494" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5494" class="Bound">e</a><a id="5496" class="Symbol">}</a> <a id="5498" class="Symbol">{</a><a id="5499" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5499" class="Bound">C</a> <a id="5501" class="Symbol">:</a> <a id="5503" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="5512" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5482" class="Bound">o</a> <a id="5514" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5484" class="Bound"></a> <a id="5516" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5486" class="Bound">e</a><a id="5517" class="Symbol">}</a> <a id="5519" class="Symbol">{</a><a id="5520" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5520" class="Bound">D</a> <a id="5522" class="Symbol">:</a> <a id="5524" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="5533" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5488" class="Bound">o</a> <a id="5536" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5491" class="Bound"></a> <a id="5539" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5494" class="Bound">e</a><a id="5541" class="Symbol">}</a> <a id="5543" class="Symbol">=</a> <a id="5545" href="Relation.Binary.Structures.html#1550" class="Module">IsEquivalence</a> <a id="5559" class="Symbol">(</a><a id="5560" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5279" class="Function">isEquivalence</a> <a id="5574" class="Symbol">{</a><a id="5575" class="Argument">C</a> <a id="5577" class="Symbol">=</a> <a id="5579" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5499" class="Bound">C</a><a id="5580" class="Symbol">}</a> <a id="5582" class="Symbol">{</a><a id="5583" class="Argument">D</a> <a id="5585" class="Symbol">=</a> <a id="5587" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5520" class="Bound">D</a><a id="5588" class="Symbol">})</a>
<a id="Functor-NI-setoid"></a><a id="5592" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5592" class="Function">Functor-NI-setoid</a> <a id="5610" class="Symbol">:</a> <a id="5612" class="Symbol">(</a><a id="5613" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5613" class="Bound">C</a> <a id="5615" class="Symbol">:</a> <a id="5617" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="5626" href="Categories.NaturalTransformation.NaturalIsomorphism.html#591" class="Generalizable">o</a> <a id="5628" href="Categories.NaturalTransformation.NaturalIsomorphism.html#593" class="Generalizable"></a> <a id="5630" href="Categories.NaturalTransformation.NaturalIsomorphism.html#595" class="Generalizable">e</a><a id="5631" class="Symbol">)</a> <a id="5633" class="Symbol">(</a><a id="5634" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5634" class="Bound">D</a> <a id="5636" class="Symbol">:</a> <a id="5638" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="5647" href="Categories.NaturalTransformation.NaturalIsomorphism.html#597" class="Generalizable">o</a> <a id="5650" href="Categories.NaturalTransformation.NaturalIsomorphism.html#600" class="Generalizable"></a> <a id="5653" href="Categories.NaturalTransformation.NaturalIsomorphism.html#603" class="Generalizable">e</a><a id="5655" class="Symbol">)</a> <a id="5657" class="Symbol"></a> <a id="5659" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a> <a id="5666" class="Symbol">_</a> <a id="5668" class="Symbol">_</a>
<a id="5670" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5592" class="Function">Functor-NI-setoid</a> <a id="5688" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5688" class="Bound">C</a> <a id="5690" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5690" class="Bound">D</a> <a id="5692" class="Symbol">=</a> <a id="5694" class="Keyword">record</a>
<a id="5703" class="Symbol">{</a> <a id="5705" href="Relation.Binary.Bundles.html#1143" class="Field">Carrier</a> <a id="5719" class="Symbol">=</a> <a id="5721" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="5729" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5688" class="Bound">C</a> <a id="5731" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5690" class="Bound">D</a>
<a id="5735" class="Symbol">;</a> <a id="5737" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="5751" class="Symbol">=</a> <a id="5753" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a>
<a id="5774" class="Symbol">;</a> <a id="5776" href="Relation.Binary.Bundles.html#1203" class="Field">isEquivalence</a> <a id="5790" class="Symbol">=</a> <a id="5792" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5279" class="Function">isEquivalence</a>
<a id="5808" class="Symbol">}</a>
<a id="5811" class="Keyword">module</a> <a id="LeftRightId"></a><a id="5818" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5818" class="Module">LeftRightId</a> <a id="5830" class="Symbol">(</a><a id="5831" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5831" class="Bound">F</a> <a id="5833" class="Symbol">:</a> <a id="5835" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="5843" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a> <a id="5845" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a><a id="5846" class="Symbol">)</a> <a id="5848" class="Keyword">where</a>
<a id="5856" class="Keyword">module</a> <a id="LeftRightId.D"></a><a id="5863" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5863" class="Module">D</a> <a id="5865" class="Symbol">=</a> <a id="5867" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="5876" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5845" class="Bound">D</a>
<a id="LeftRightId.iso-id-id"></a><a id="5881" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5881" class="Function">iso-id-id</a> <a id="5891" class="Symbol">:</a> <a id="5893" class="Symbol">(</a><a id="5894" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5894" class="Bound">X</a> <a id="5896" class="Symbol">:</a> <a id="5898" href="Categories.Category.Core.html#559" class="Field">Category.Obj</a> <a id="5911" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5843" class="Bound">C</a><a id="5912" class="Symbol">)</a> <a id="5914" class="Symbol"></a> <a id="5916" href="Categories.Morphism.html#1528" class="Record">Morphism.Iso</a> <a id="5929" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5845" class="Bound">D</a> <a id="5931" class="Symbol">{</a><a id="5932" class="Argument">A</a> <a id="5934" class="Symbol">=</a> <a id="5936" href="Categories.Functor.Core.html#432" class="Field">Functor.F₀</a> <a id="5947" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5831" class="Bound">F</a> <a id="5949" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5894" class="Bound">X</a><a id="5950" class="Symbol">}</a> <a id="5952" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="5957" href="Categories.Category.Core.html#630" class="Function">D.id</a>
<a id="5964" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5881" class="Function">iso-id-id</a> <a id="5974" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5974" class="Bound">X</a> <a id="5976" class="Symbol">=</a> <a id="5978" class="Keyword">record</a> <a id="5985" class="Symbol">{</a> <a id="5987" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="5992" class="Symbol">=</a> <a id="5994" href="Categories.Category.Core.html#1096" class="Function">D.identityˡ</a> <a id="6006" class="Symbol">;</a> <a id="6008" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="6013" class="Symbol">=</a> <a id="6015" href="Categories.Category.Core.html#1145" class="Function">D.identityʳ</a> <a id="6027" class="Symbol">}</a>
<a id="6030" class="Comment">-- Left and Right and &#39;Central&#39; Unitors, Natural Isomorphisms.</a>
<a id="6093" class="Keyword">module</a> <a id="6100" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6100" class="Module">_</a> <a id="6102" class="Symbol">{</a><a id="6103" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6103" class="Bound">F</a> <a id="6105" class="Symbol">:</a> <a id="6107" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="6115" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a> <a id="6117" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a><a id="6118" class="Symbol">}</a> <a id="6120" class="Keyword">where</a>
<a id="6128" class="Keyword">open</a> <a id="6133" href="Categories.Category.Core.html#2462" class="Module">Category.HomReasoning</a> <a id="6155" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6117" class="Bound">D</a>
<a id="6159" class="Keyword">open</a> <a id="6164" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="6172" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6103" class="Bound">F</a>
<a id="6176" class="Keyword">open</a> <a id="6181" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5818" class="Module">LeftRightId</a> <a id="6193" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6103" class="Bound">F</a>
<a id="6197" class="Keyword">open</a> <a id="6202" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="6211" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6117" class="Bound">D</a>
<a id="6216" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6216" class="Function">unitorˡ</a> <a id="6224" class="Symbol">:</a> <a id="6226" href="Categories.Functor.html#349" class="Function">.id</a> <a id="6231" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6234" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6103" class="Bound">F</a> <a id="6236" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="6238" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6103" class="Bound">F</a>
<a id="6242" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6216" class="Function">unitorˡ</a> <a id="6250" class="Symbol">=</a> <a id="6252" class="Keyword">record</a> <a id="6259" class="Symbol">{</a> <a id="6261" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="6265" class="Symbol">=</a> <a id="6267" href="Categories.NaturalTransformation.Core.html#5215" class="Function">id∘F⇒F</a> <a id="6274" class="Symbol">;</a> <a id="6276" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="6280" class="Symbol">=</a> <a id="6282" href="Categories.NaturalTransformation.Core.html#4927" class="Function">F⇒id∘F</a> <a id="6289" class="Symbol">;</a> <a id="6291" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="6295" class="Symbol">=</a> <a id="6297" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5881" class="Function">iso-id-id</a> <a id="6307" class="Symbol">}</a>
<a id="6312" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6312" class="Function">unitorʳ</a> <a id="6320" class="Symbol">:</a> <a id="6322" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6103" class="Bound">F</a> <a id="6324" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6327" href="Categories.Functor.html#349" class="Function">.id</a> <a id="6332" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="6334" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6103" class="Bound">F</a>
<a id="6338" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6312" class="Function">unitorʳ</a> <a id="6346" class="Symbol">=</a> <a id="6348" class="Keyword">record</a> <a id="6355" class="Symbol">{</a> <a id="6357" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="6361" class="Symbol">=</a> <a id="6363" href="Categories.NaturalTransformation.Core.html#5071" class="Function">F∘id⇒F</a> <a id="6370" class="Symbol">;</a> <a id="6372" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="6376" class="Symbol">=</a> <a id="6378" href="Categories.NaturalTransformation.Core.html#4783" class="Function">F⇒F∘id</a> <a id="6385" class="Symbol">;</a> <a id="6387" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="6391" class="Symbol">=</a> <a id="6393" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5881" class="Function">iso-id-id</a> <a id="6403" class="Symbol">}</a>
<a id="unitor²"></a><a id="6406" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6406" class="Function">unitor²</a> <a id="6414" class="Symbol">:</a> <a id="6416" class="Symbol">{</a><a id="6417" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6417" class="Bound">C</a> <a id="6419" class="Symbol">:</a> <a id="6421" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="6430" href="Categories.NaturalTransformation.NaturalIsomorphism.html#591" class="Generalizable">o</a> <a id="6432" href="Categories.NaturalTransformation.NaturalIsomorphism.html#593" class="Generalizable"></a> <a id="6434" href="Categories.NaturalTransformation.NaturalIsomorphism.html#595" class="Generalizable">e</a><a id="6435" class="Symbol">}</a> <a id="6437" class="Symbol"></a> <a id="6439" href="Categories.Functor.html#349" class="Function">.id</a> <a id="6444" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6447" href="Categories.Functor.html#349" class="Function">.id</a> <a id="6452" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="6454" href="Categories.Functor.html#349" class="Function">.id</a> <a id="6459" class="Symbol">{</a><a id="6460" class="Argument">C</a> <a id="6462" class="Symbol">=</a> <a id="6464" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6417" class="Bound">C</a><a id="6465" class="Symbol">}</a>
<a id="6467" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6406" class="Function">unitor²</a> <a id="6475" class="Symbol">=</a> <a id="6477" class="Keyword">record</a> <a id="6484" class="Symbol">{</a> <a id="6486" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="6490" class="Symbol">=</a> <a id="6492" href="Categories.NaturalTransformation.Core.html#4133" class="Function">id∘id⇒id</a> <a id="6501" class="Symbol">;</a> <a id="6503" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="6507" class="Symbol">=</a> <a id="6509" href="Categories.NaturalTransformation.Core.html#4385" class="Function">id⇒id∘id</a> <a id="6518" class="Symbol">;</a> <a id="6520" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="6524" class="Symbol">=</a> <a id="6526" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5881" class="Function">LeftRightId.iso-id-id</a> <a id="6548" href="Categories.Functor.html#349" class="Function">.id</a> <a id="6553" class="Symbol">}</a>
<a id="6556" class="Comment">-- associator</a>
<a id="6570" class="Keyword">module</a> <a id="6577" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6577" class="Module">_</a> <a id="6579" class="Symbol">(</a><a id="6580" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6580" class="Bound">F</a> <a id="6582" class="Symbol">:</a> <a id="6584" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="6592" href="Categories.NaturalTransformation.NaturalIsomorphism.html#618" class="Generalizable">B</a> <a id="6594" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a><a id="6595" class="Symbol">)</a> <a id="6597" class="Symbol">(</a><a id="6598" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6598" class="Bound">G</a> <a id="6600" class="Symbol">:</a> <a id="6602" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="6610" href="Categories.NaturalTransformation.NaturalIsomorphism.html#620" class="Generalizable">C</a> <a id="6612" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a><a id="6613" class="Symbol">)</a> <a id="6615" class="Symbol">(</a><a id="6616" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6616" class="Bound">H</a> <a id="6618" class="Symbol">:</a> <a id="6620" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="6628" href="Categories.NaturalTransformation.NaturalIsomorphism.html#622" class="Generalizable">D</a> <a id="6630" href="Categories.NaturalTransformation.NaturalIsomorphism.html#624" class="Generalizable">E</a><a id="6631" class="Symbol">)</a> <a id="6633" class="Keyword">where</a>
<a id="6641" class="Keyword">open</a> <a id="6646" href="Categories.Category.Core.html#2462" class="Module">Category.HomReasoning</a> <a id="6668" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6630" class="Bound">E</a>
<a id="6672" class="Keyword">open</a> <a id="6677" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="6686" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6630" class="Bound">E</a>
<a id="6690" class="Keyword">open</a> <a id="6695" href="Categories.Functor.Core.html#248" class="Module">Functor</a>
<a id="6705" class="Keyword">open</a> <a id="6710" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5818" class="Module">LeftRightId</a> <a id="6722" class="Symbol">(</a><a id="6723" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6616" class="Bound">H</a> <a id="6725" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6728" class="Symbol">(</a><a id="6729" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6598" class="Bound">G</a> <a id="6731" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6734" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6580" class="Bound">F</a><a id="6735" class="Symbol">))</a>
<a id="6741" class="Keyword">private</a>
<a id="6753" class="Comment">-- components of α</a>
<a id="6776" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6776" class="Function">assocʳ</a> <a id="6783" class="Symbol">:</a> <a id="6785" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="6807" class="Symbol">((</a><a id="6809" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6616" class="Bound">H</a> <a id="6811" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6814" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6598" class="Bound">G</a><a id="6815" class="Symbol">)</a> <a id="6817" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6820" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6580" class="Bound">F</a><a id="6821" class="Symbol">)</a> <a id="6823" class="Symbol">(</a><a id="6824" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6616" class="Bound">H</a> <a id="6826" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6829" class="Symbol">(</a><a id="6830" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6598" class="Bound">G</a> <a id="6832" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6835" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6580" class="Bound">F</a><a id="6836" class="Symbol">))</a>
<a id="6843" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6776" class="Function">assocʳ</a> <a id="6850" class="Symbol">=</a> <a id="6852" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="6861" class="Keyword">record</a> <a id="6868" class="Symbol">{</a> <a id="6870" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="6872" class="Symbol">=</a> <a id="6874" class="Symbol">λ</a> <a id="6876" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6876" class="Bound">_</a> <a id="6878" class="Symbol"></a> <a id="6880" href="Categories.Category.Core.html#630" class="Function">id</a> <a id="6883" class="Symbol">;</a> <a id="6885" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="6893" class="Symbol">=</a> <a id="6895" class="Symbol">λ</a> <a id="6897" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6897" class="Bound">_</a> <a id="6899" class="Symbol"></a> <a id="6901" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">MR.id-comm-sym</a> <a id="6916" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6630" class="Bound">E</a> <a id="6919" class="Symbol">}</a>
<a id="6926" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6926" class="Function">assocˡ</a> <a id="6933" class="Symbol">:</a> <a id="6935" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="6957" class="Symbol">(</a><a id="6958" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6616" class="Bound">H</a> <a id="6960" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6963" class="Symbol">(</a><a id="6964" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6598" class="Bound">G</a> <a id="6966" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6969" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6580" class="Bound">F</a><a id="6970" class="Symbol">))</a> <a id="6973" class="Symbol">((</a><a id="6975" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6616" class="Bound">H</a> <a id="6977" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6980" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6598" class="Bound">G</a><a id="6981" class="Symbol">)</a> <a id="6983" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="6986" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6580" class="Bound">F</a><a id="6987" class="Symbol">)</a>
<a id="6993" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6926" class="Function">assocˡ</a> <a id="7000" class="Symbol">=</a> <a id="7002" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="7011" class="Keyword">record</a> <a id="7018" class="Symbol">{</a> <a id="7020" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="7022" class="Symbol">=</a> <a id="7024" class="Symbol">λ</a> <a id="7026" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7026" class="Bound">_</a> <a id="7028" class="Symbol"></a> <a id="7030" href="Categories.Category.Core.html#630" class="Function">id</a> <a id="7033" class="Symbol">;</a> <a id="7035" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="7043" class="Symbol">=</a> <a id="7045" class="Symbol">λ</a> <a id="7047" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7047" class="Bound">_</a> <a id="7049" class="Symbol"></a> <a id="7051" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">MR.id-comm-sym</a> <a id="7066" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6630" class="Bound">E</a> <a id="7068" class="Symbol">}</a>
<a id="7073" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7073" class="Function">associator</a> <a id="7084" class="Symbol">:</a> <a id="7086" class="Symbol">(</a><a id="7087" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6616" class="Bound">H</a> <a id="7089" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="7092" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6598" class="Bound">G</a><a id="7093" class="Symbol">)</a> <a id="7095" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="7098" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6580" class="Bound">F</a> <a id="7100" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="7102" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6616" class="Bound">H</a> <a id="7104" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="7107" class="Symbol">(</a><a id="7108" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6598" class="Bound">G</a> <a id="7110" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="7113" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6580" class="Bound">F</a><a id="7114" class="Symbol">)</a>
<a id="7118" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7073" class="Function">associator</a> <a id="7129" class="Symbol">=</a> <a id="7131" class="Keyword">record</a> <a id="7138" class="Symbol">{</a> <a id="7140" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="7144" class="Symbol">=</a> <a id="7146" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6776" class="Function">assocʳ</a> <a id="7153" class="Symbol">;</a> <a id="7155" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="7159" class="Symbol">=</a> <a id="7161" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6926" class="Function">assocˡ</a> <a id="7168" class="Symbol">;</a> <a id="7170" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="7174" class="Symbol">=</a> <a id="7176" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5881" class="Function">iso-id-id</a> <a id="7186" class="Symbol">}</a>
<a id="7191" class="Comment">-- useful when building functor categories</a>
<a id="7236" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7236" class="Function">sym-associator</a> <a id="7251" class="Symbol">:</a> <a id="7253" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6616" class="Bound">H</a> <a id="7255" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="7258" class="Symbol">(</a><a id="7259" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6598" class="Bound">G</a> <a id="7261" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="7264" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6580" class="Bound">F</a><a id="7265" class="Symbol">)</a> <a id="7267" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3600" class="Function Operator"></a> <a id="7269" class="Symbol">(</a><a id="7270" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6616" class="Bound">H</a> <a id="7272" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="7275" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6598" class="Bound">G</a><a id="7276" class="Symbol">)</a> <a id="7278" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="7281" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6580" class="Bound">F</a>
<a id="7285" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7236" class="Function">sym-associator</a> <a id="7300" class="Symbol">=</a> <a id="7302" class="Keyword">record</a> <a id="7309" class="Symbol">{</a> <a id="7311" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="7315" class="Symbol">=</a> <a id="7317" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6926" class="Function">assocˡ</a> <a id="7324" class="Symbol">;</a> <a id="7326" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="7330" class="Symbol">=</a> <a id="7332" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6776" class="Function">assocʳ</a> <a id="7339" class="Symbol">;</a> <a id="7341" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="7345" class="Symbol">=</a> <a id="7347" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5881" class="Function">iso-id-id</a> <a id="7357" class="Symbol">}</a>
</pre></body></html>