bsc-leon-vatthauer/public/Categories.NaturalTransformation.Dinatural.html

232 lines
No EOL
127 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.Dinatural</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Symbol">{-#</a> <a id="5" class="Keyword">OPTIONS</a> <a id="13" class="Pragma">--without-K</a> <a id="25" class="Pragma">--safe</a> <a id="32" class="Symbol">#-}</a>
<a id="36" class="Keyword">module</a> <a id="43" href="Categories.NaturalTransformation.Dinatural.html" class="Module">Categories.NaturalTransformation.Dinatural</a> <a id="86" class="Keyword">where</a>
<a id="93" class="Keyword">open</a> <a id="98" class="Keyword">import</a> <a id="105" href="Level.html" class="Module">Level</a>
<a id="111" class="Keyword">open</a> <a id="116" class="Keyword">import</a> <a id="123" href="Data.Product.html" class="Module">Data.Product</a>
<a id="136" class="Keyword">open</a> <a id="141" class="Keyword">import</a> <a id="148" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="164" class="Keyword">using</a> <a id="170" class="Symbol">(</a><a id="171" href="Relation.Binary.Core.html#891" class="Function">Rel</a><a id="174" class="Symbol">;</a> <a id="176" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a><a id="189" class="Symbol">;</a> <a id="191" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a><a id="197" class="Symbol">)</a>
<a id="200" class="Keyword">open</a> <a id="205" class="Keyword">import</a> <a id="212" href="Categories.Category.html" class="Module">Categories.Category</a>
<a id="232" class="Keyword">open</a> <a id="237" class="Keyword">import</a> <a id="244" href="Categories.NaturalTransformation.html" class="Module">Categories.NaturalTransformation</a> <a id="277" class="Symbol">as</a> <a id="280" class="Module">NT</a> <a id="283" class="Keyword">hiding</a> <a id="290" class="Symbol">(</a><a id="291" href="Categories.NaturalTransformation.Core.html#3784" class="Function Operator">_∘ʳ_</a><a id="295" class="Symbol">)</a>
<a id="297" class="Keyword">open</a> <a id="302" class="Keyword">import</a> <a id="309" href="Categories.Functor.html" class="Module">Categories.Functor</a>
<a id="328" class="Keyword">open</a> <a id="333" class="Keyword">import</a> <a id="340" href="Categories.Functor.Construction.Constant.html" class="Module">Categories.Functor.Construction.Constant</a>
<a id="381" class="Keyword">open</a> <a id="386" class="Keyword">import</a> <a id="393" href="Categories.Functor.Bifunctor.html" class="Module">Categories.Functor.Bifunctor</a>
<a id="422" class="Keyword">open</a> <a id="427" class="Keyword">import</a> <a id="434" href="Categories.Category.Product.html" class="Module">Categories.Category.Product</a>
<a id="462" class="Keyword">import</a> <a id="469" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="499" class="Symbol">as</a> <a id="502" class="Module">MR</a>
<a id="506" class="Keyword">private</a>
<a id="516" class="Keyword">variable</a>
<a id="529" href="Categories.NaturalTransformation.Dinatural.html#529" class="Generalizable">o</a> <a id="531" href="Categories.NaturalTransformation.Dinatural.html#531" class="Generalizable"></a> <a id="533" href="Categories.NaturalTransformation.Dinatural.html#533" class="Generalizable">e</a> <a id="535" class="Symbol">:</a> <a id="537" href="Agda.Primitive.html#591" class="Postulate">Level</a>
<a id="547" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a> <a id="549" href="Categories.NaturalTransformation.Dinatural.html#549" class="Generalizable">D</a> <a id="551" href="Categories.NaturalTransformation.Dinatural.html#551" class="Generalizable">E</a> <a id="553" class="Symbol">:</a> <a id="555" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="564" href="Categories.NaturalTransformation.Dinatural.html#529" class="Generalizable">o</a> <a id="566" href="Categories.NaturalTransformation.Dinatural.html#531" class="Generalizable"></a> <a id="568" href="Categories.NaturalTransformation.Dinatural.html#533" class="Generalizable">e</a>
<a id="571" class="Keyword">record</a> <a id="DinaturalTransformation"></a><a id="578" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="602" class="Symbol">(</a><a id="603" href="Categories.NaturalTransformation.Dinatural.html#603" class="Bound">F</a> <a id="605" href="Categories.NaturalTransformation.Dinatural.html#605" class="Bound">G</a> <a id="607" class="Symbol">:</a> <a id="609" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="619" class="Symbol">(</a><a id="620" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="632" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a><a id="633" class="Symbol">)</a> <a id="635" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a> <a id="637" href="Categories.NaturalTransformation.Dinatural.html#549" class="Generalizable">D</a><a id="638" class="Symbol">)</a> <a id="640" class="Symbol">:</a> <a id="642" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="646" class="Symbol">(</a><a id="647" href="Level.html#602" class="Function">levelOfTerm</a> <a id="659" href="Categories.NaturalTransformation.Dinatural.html#603" class="Bound">F</a><a id="660" class="Symbol">)</a> <a id="662" class="Keyword">where</a>
<a id="670" class="Keyword">eta-equality</a>
<a id="685" class="Keyword">private</a>
<a id="697" class="Keyword">module</a> <a id="DinaturalTransformation.C"></a><a id="704" href="Categories.NaturalTransformation.Dinatural.html#704" class="Module">C</a> <a id="706" class="Symbol">=</a> <a id="708" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="717" href="Categories.NaturalTransformation.Dinatural.html#632" class="Bound">C</a>
<a id="723" class="Keyword">module</a> <a id="DinaturalTransformation.D"></a><a id="730" href="Categories.NaturalTransformation.Dinatural.html#730" class="Module">D</a> <a id="732" class="Symbol">=</a> <a id="734" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="743" href="Categories.NaturalTransformation.Dinatural.html#637" class="Bound">D</a>
<a id="749" class="Keyword">module</a> <a id="DinaturalTransformation.F"></a><a id="756" href="Categories.NaturalTransformation.Dinatural.html#756" class="Module">F</a> <a id="758" class="Symbol">=</a> <a id="760" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="768" href="Categories.NaturalTransformation.Dinatural.html#603" class="Bound">F</a>
<a id="774" class="Keyword">module</a> <a id="DinaturalTransformation.G"></a><a id="781" href="Categories.NaturalTransformation.Dinatural.html#781" class="Module">G</a> <a id="783" class="Symbol">=</a> <a id="785" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="793" href="Categories.NaturalTransformation.Dinatural.html#605" class="Bound">G</a>
<a id="798" class="Keyword">open</a> <a id="803" href="Categories.NaturalTransformation.Dinatural.html#730" class="Module">D</a> <a id="805" class="Keyword">hiding</a> <a id="812" class="Symbol">(</a><a id="813" href="Categories.Category.Core.html#3132" class="Function">op</a><a id="815" class="Symbol">)</a>
<a id="819" class="Keyword">open</a> <a id="824" href="Categories.Category.html#1298" class="Module">Commutation</a> <a id="836" href="Categories.NaturalTransformation.Dinatural.html#637" class="Bound">D</a>
<a id="841" class="Keyword">field</a>
<a id="DinaturalTransformation.α"></a><a id="851" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="862" class="Symbol">:</a> <a id="864" class="Symbol"></a> <a id="866" href="Categories.NaturalTransformation.Dinatural.html#866" class="Bound">X</a> <a id="868" class="Symbol"></a> <a id="870" href="Categories.NaturalTransformation.Dinatural.html#637" class="Bound">D</a> <a id="872" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="874" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="879" class="Symbol">(</a><a id="880" href="Categories.NaturalTransformation.Dinatural.html#866" class="Bound">X</a> <a id="882" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="884" href="Categories.NaturalTransformation.Dinatural.html#866" class="Bound">X</a><a id="885" class="Symbol">)</a> <a id="887" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="889" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="894" class="Symbol">(</a><a id="895" href="Categories.NaturalTransformation.Dinatural.html#866" class="Bound">X</a> <a id="897" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="899" href="Categories.NaturalTransformation.Dinatural.html#866" class="Bound">X</a><a id="900" class="Symbol">)</a> <a id="902" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="DinaturalTransformation.commute"></a><a id="908" href="Categories.NaturalTransformation.Dinatural.html#908" class="Field">commute</a> <a id="919" class="Symbol">:</a> <a id="921" class="Symbol"></a> <a id="923" class="Symbol">{</a><a id="924" href="Categories.NaturalTransformation.Dinatural.html#924" class="Bound">X</a> <a id="926" href="Categories.NaturalTransformation.Dinatural.html#926" class="Bound">Y</a><a id="927" class="Symbol">}</a> <a id="929" class="Symbol">(</a><a id="930" href="Categories.NaturalTransformation.Dinatural.html#930" class="Bound">f</a> <a id="932" class="Symbol">:</a> <a id="934" href="Categories.NaturalTransformation.Dinatural.html#632" class="Bound">C</a> <a id="936" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="938" href="Categories.NaturalTransformation.Dinatural.html#924" class="Bound">X</a> <a id="940" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="942" href="Categories.NaturalTransformation.Dinatural.html#926" class="Bound">Y</a> <a id="944" href="Categories.Category.html#502" class="Function Operator">]</a><a id="945" class="Symbol">)</a> <a id="947" class="Symbol"></a>
<a id="965" href="Categories.Category.html#1379" class="Function Operator">[</a> <a id="967" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="972" class="Symbol">(</a><a id="973" href="Categories.NaturalTransformation.Dinatural.html#926" class="Bound">Y</a> <a id="975" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="977" href="Categories.NaturalTransformation.Dinatural.html#924" class="Bound">X</a><a id="978" class="Symbol">)</a> <a id="980" href="Categories.Category.html#1379" class="Function Operator"></a> <a id="982" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="987" class="Symbol">(</a><a id="988" href="Categories.NaturalTransformation.Dinatural.html#924" class="Bound">X</a> <a id="990" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="992" href="Categories.NaturalTransformation.Dinatural.html#926" class="Bound">Y</a><a id="993" class="Symbol">)</a> <a id="995" href="Categories.Category.html#1379" class="Function Operator">]⟨</a>
<a id="1016" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="1021" class="Symbol">(</a><a id="1022" href="Categories.NaturalTransformation.Dinatural.html#930" class="Bound">f</a> <a id="1024" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1026" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="1030" class="Symbol">)</a> <a id="1044" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="1047" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="1052" class="Symbol">(</a><a id="1053" href="Categories.NaturalTransformation.Dinatural.html#924" class="Bound">X</a> <a id="1055" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1057" href="Categories.NaturalTransformation.Dinatural.html#924" class="Bound">X</a><a id="1058" class="Symbol">)</a> <a id="1060" href="Categories.Category.html#1481" class="Function"></a>
<a id="1080" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="1082" href="Categories.NaturalTransformation.Dinatural.html#924" class="Bound">X</a> <a id="1108" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="1111" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1116" class="Symbol">(</a><a id="1117" href="Categories.NaturalTransformation.Dinatural.html#924" class="Bound">X</a> <a id="1119" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1121" href="Categories.NaturalTransformation.Dinatural.html#924" class="Bound">X</a><a id="1122" class="Symbol">)</a> <a id="1124" href="Categories.Category.html#1481" class="Function"></a>
<a id="1144" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="1149" class="Symbol">(</a><a id="1150" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="1155" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1157" href="Categories.NaturalTransformation.Dinatural.html#930" class="Bound">f</a><a id="1158" class="Symbol">)</a>
<a id="1176" href="Categories.Category.html#1379" class="Function Operator"></a> <a id="1178" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="1183" class="Symbol">(</a><a id="1184" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="1189" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1191" href="Categories.NaturalTransformation.Dinatural.html#930" class="Bound">f</a><a id="1192" class="Symbol">)</a> <a id="1206" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="1209" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="1214" class="Symbol">(</a><a id="1215" href="Categories.NaturalTransformation.Dinatural.html#926" class="Bound">Y</a> <a id="1217" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1219" href="Categories.NaturalTransformation.Dinatural.html#926" class="Bound">Y</a><a id="1220" class="Symbol">)</a> <a id="1222" href="Categories.Category.html#1481" class="Function"></a>
<a id="1242" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="1244" href="Categories.NaturalTransformation.Dinatural.html#926" class="Bound">Y</a> <a id="1270" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="1273" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1278" class="Symbol">(</a><a id="1279" href="Categories.NaturalTransformation.Dinatural.html#926" class="Bound">Y</a> <a id="1281" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1283" href="Categories.NaturalTransformation.Dinatural.html#926" class="Bound">Y</a><a id="1284" class="Symbol">)</a> <a id="1286" href="Categories.Category.html#1481" class="Function"></a>
<a id="1306" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="1311" class="Symbol">(</a><a id="1312" href="Categories.NaturalTransformation.Dinatural.html#930" class="Bound">f</a> <a id="1314" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1316" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="1320" class="Symbol">)</a>
<a id="1338" href="Categories.Category.html#1379" class="Function Operator"></a>
<a id="1344" class="Comment">-- We add this extra proof, because, again, we want to ensure the opposite of the</a>
<a id="1430" class="Comment">-- opposite of dinatural transformation is definitionally equal to itself.</a>
<a id="DinaturalTransformation.op-commute"></a><a id="1509" href="Categories.NaturalTransformation.Dinatural.html#1509" class="Field">op-commute</a> <a id="1520" class="Symbol">:</a> <a id="1522" class="Symbol"></a> <a id="1524" class="Symbol">{</a><a id="1525" href="Categories.NaturalTransformation.Dinatural.html#1525" class="Bound">X</a> <a id="1527" href="Categories.NaturalTransformation.Dinatural.html#1527" class="Bound">Y</a><a id="1528" class="Symbol">}</a> <a id="1530" class="Symbol">(</a><a id="1531" href="Categories.NaturalTransformation.Dinatural.html#1531" class="Bound">f</a> <a id="1533" class="Symbol">:</a> <a id="1535" href="Categories.NaturalTransformation.Dinatural.html#632" class="Bound">C</a> <a id="1537" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1539" href="Categories.NaturalTransformation.Dinatural.html#1525" class="Bound">X</a> <a id="1541" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1543" href="Categories.NaturalTransformation.Dinatural.html#1527" class="Bound">Y</a> <a id="1545" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1546" class="Symbol">)</a> <a id="1548" class="Symbol"></a>
<a id="1566" href="Categories.Category.html#1379" class="Function Operator">[</a> <a id="1568" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="1573" class="Symbol">(</a><a id="1574" href="Categories.NaturalTransformation.Dinatural.html#1527" class="Bound">Y</a> <a id="1576" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1578" href="Categories.NaturalTransformation.Dinatural.html#1525" class="Bound">X</a><a id="1579" class="Symbol">)</a> <a id="1581" href="Categories.Category.html#1379" class="Function Operator"></a> <a id="1583" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1588" class="Symbol">(</a><a id="1589" href="Categories.NaturalTransformation.Dinatural.html#1525" class="Bound">X</a> <a id="1591" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1593" href="Categories.NaturalTransformation.Dinatural.html#1527" class="Bound">Y</a><a id="1594" class="Symbol">)</a> <a id="1596" href="Categories.Category.html#1379" class="Function Operator">]⟨</a>
<a id="1617" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="1622" class="Symbol">(</a><a id="1623" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="1628" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1630" href="Categories.NaturalTransformation.Dinatural.html#1531" class="Bound">f</a><a id="1631" class="Symbol">)</a> <a id="1645" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="1648" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="1653" class="Symbol">(</a><a id="1654" href="Categories.NaturalTransformation.Dinatural.html#1527" class="Bound">Y</a> <a id="1656" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1658" href="Categories.NaturalTransformation.Dinatural.html#1527" class="Bound">Y</a><a id="1659" class="Symbol">)</a> <a id="1661" href="Categories.Category.html#1481" class="Function"></a>
<a id="1681" class="Symbol">(</a><a id="1682" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="1684" href="Categories.NaturalTransformation.Dinatural.html#1527" class="Bound">Y</a> <a id="1710" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="1713" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1718" class="Symbol">(</a><a id="1719" href="Categories.NaturalTransformation.Dinatural.html#1527" class="Bound">Y</a> <a id="1721" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1723" href="Categories.NaturalTransformation.Dinatural.html#1527" class="Bound">Y</a><a id="1724" class="Symbol">)</a> <a id="1726" href="Categories.Category.html#1481" class="Function"></a>
<a id="1746" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="1751" class="Symbol">(</a><a id="1752" href="Categories.NaturalTransformation.Dinatural.html#1531" class="Bound">f</a> <a id="1754" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1756" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="1760" class="Symbol">))</a>
<a id="1779" href="Categories.Category.html#1379" class="Function Operator"></a> <a id="1781" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="1786" class="Symbol">(</a><a id="1787" href="Categories.NaturalTransformation.Dinatural.html#1531" class="Bound">f</a> <a id="1789" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1791" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="1795" class="Symbol">)</a> <a id="1809" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="1812" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="1817" class="Symbol">(</a><a id="1818" href="Categories.NaturalTransformation.Dinatural.html#1525" class="Bound">X</a> <a id="1820" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1822" href="Categories.NaturalTransformation.Dinatural.html#1525" class="Bound">X</a><a id="1823" class="Symbol">)</a> <a id="1825" href="Categories.Category.html#1481" class="Function"></a>
<a id="1845" class="Symbol">(</a><a id="1846" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="1848" href="Categories.NaturalTransformation.Dinatural.html#1525" class="Bound">X</a> <a id="1874" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="1877" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1882" class="Symbol">(</a><a id="1883" href="Categories.NaturalTransformation.Dinatural.html#1525" class="Bound">X</a> <a id="1885" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1887" href="Categories.NaturalTransformation.Dinatural.html#1525" class="Bound">X</a><a id="1888" class="Symbol">)</a> <a id="1890" href="Categories.Category.html#1481" class="Function"></a>
<a id="1910" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="1915" class="Symbol">(</a><a id="1916" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="1921" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1923" href="Categories.NaturalTransformation.Dinatural.html#1531" class="Bound">f</a><a id="1924" class="Symbol">))</a>
<a id="1943" href="Categories.Category.html#1379" class="Function Operator"></a>
<a id="DinaturalTransformation.op"></a><a id="1948" href="Categories.NaturalTransformation.Dinatural.html#1948" class="Function">op</a> <a id="1951" class="Symbol">:</a> <a id="1953" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="1977" href="Categories.Functor.Core.html#816" class="Function">G.op</a> <a id="1982" href="Categories.Functor.Core.html#816" class="Function">F.op</a>
<a id="1989" href="Categories.NaturalTransformation.Dinatural.html#1948" class="Function">op</a> <a id="1992" class="Symbol">=</a> <a id="1994" class="Keyword">record</a>
<a id="2005" class="Symbol">{</a> <a id="2007" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="2018" class="Symbol">=</a> <a id="2020" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a>
<a id="2026" class="Symbol">;</a> <a id="2028" href="Categories.NaturalTransformation.Dinatural.html#908" class="Field">commute</a> <a id="2039" class="Symbol">=</a> <a id="2041" href="Categories.NaturalTransformation.Dinatural.html#1509" class="Field">op-commute</a>
<a id="2056" class="Symbol">;</a> <a id="2058" href="Categories.NaturalTransformation.Dinatural.html#1509" class="Field">op-commute</a> <a id="2069" class="Symbol">=</a> <a id="2071" href="Categories.NaturalTransformation.Dinatural.html#908" class="Field">commute</a>
<a id="2083" class="Symbol">}</a>
<a id="2086" class="Comment">-- to reduce the burden of constructing a DinaturalTransformation, we introduce</a>
<a id="2166" class="Comment">-- another helper.</a>
<a id="2185" class="Keyword">record</a> <a id="DTHelper"></a><a id="2192" href="Categories.NaturalTransformation.Dinatural.html#2192" class="Record">DTHelper</a> <a id="2201" class="Symbol">(</a><a id="2202" href="Categories.NaturalTransformation.Dinatural.html#2202" class="Bound">F</a> <a id="2204" href="Categories.NaturalTransformation.Dinatural.html#2204" class="Bound">G</a> <a id="2206" class="Symbol">:</a> <a id="2208" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="2218" class="Symbol">(</a><a id="2219" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="2231" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a><a id="2232" class="Symbol">)</a> <a id="2234" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a> <a id="2236" href="Categories.NaturalTransformation.Dinatural.html#549" class="Generalizable">D</a><a id="2237" class="Symbol">)</a> <a id="2239" class="Symbol">:</a> <a id="2241" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2245" class="Symbol">(</a><a id="2246" href="Level.html#602" class="Function">levelOfTerm</a> <a id="2258" href="Categories.NaturalTransformation.Dinatural.html#2202" class="Bound">F</a><a id="2259" class="Symbol">)</a> <a id="2261" class="Keyword">where</a>
<a id="2269" class="Keyword">private</a>
<a id="2281" class="Keyword">module</a> <a id="DTHelper.C"></a><a id="2288" href="Categories.NaturalTransformation.Dinatural.html#2288" class="Module">C</a> <a id="2290" class="Symbol">=</a> <a id="2292" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="2301" href="Categories.NaturalTransformation.Dinatural.html#2231" class="Bound">C</a>
<a id="2307" class="Keyword">module</a> <a id="DTHelper.D"></a><a id="2314" href="Categories.NaturalTransformation.Dinatural.html#2314" class="Module">D</a> <a id="2316" class="Symbol">=</a> <a id="2318" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="2327" href="Categories.NaturalTransformation.Dinatural.html#2236" class="Bound">D</a>
<a id="2333" class="Keyword">module</a> <a id="DTHelper.F"></a><a id="2340" href="Categories.NaturalTransformation.Dinatural.html#2340" class="Module">F</a> <a id="2342" class="Symbol">=</a> <a id="2344" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="2352" href="Categories.NaturalTransformation.Dinatural.html#2202" class="Bound">F</a>
<a id="2358" class="Keyword">module</a> <a id="DTHelper.G"></a><a id="2365" href="Categories.NaturalTransformation.Dinatural.html#2365" class="Module">G</a> <a id="2367" class="Symbol">=</a> <a id="2369" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="2377" href="Categories.NaturalTransformation.Dinatural.html#2204" class="Bound">G</a>
<a id="2381" class="Keyword">open</a> <a id="2386" href="Categories.NaturalTransformation.Dinatural.html#2314" class="Module">D</a> <a id="2388" class="Keyword">hiding</a> <a id="2395" class="Symbol">(</a><a id="2396" href="Categories.Category.Core.html#3132" class="Function">op</a><a id="2398" class="Symbol">)</a>
<a id="2402" class="Keyword">open</a> <a id="2407" href="Categories.Category.html#1298" class="Module">Commutation</a> <a id="2419" href="Categories.NaturalTransformation.Dinatural.html#2236" class="Bound">D</a>
<a id="2424" class="Keyword">field</a>
<a id="DTHelper.α"></a><a id="2434" href="Categories.NaturalTransformation.Dinatural.html#2434" class="Field">α</a> <a id="2445" class="Symbol">:</a> <a id="2447" class="Symbol"></a> <a id="2449" href="Categories.NaturalTransformation.Dinatural.html#2449" class="Bound">X</a> <a id="2451" class="Symbol"></a> <a id="2453" href="Categories.NaturalTransformation.Dinatural.html#2236" class="Bound">D</a> <a id="2455" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="2457" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="2462" class="Symbol">(</a><a id="2463" href="Categories.NaturalTransformation.Dinatural.html#2449" class="Bound">X</a> <a id="2465" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2467" href="Categories.NaturalTransformation.Dinatural.html#2449" class="Bound">X</a><a id="2468" class="Symbol">)</a> <a id="2470" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="2472" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2477" class="Symbol">(</a><a id="2478" href="Categories.NaturalTransformation.Dinatural.html#2449" class="Bound">X</a> <a id="2480" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2482" href="Categories.NaturalTransformation.Dinatural.html#2449" class="Bound">X</a><a id="2483" class="Symbol">)</a> <a id="2485" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="DTHelper.commute"></a><a id="2491" href="Categories.NaturalTransformation.Dinatural.html#2491" class="Field">commute</a> <a id="2502" class="Symbol">:</a> <a id="2504" class="Symbol"></a> <a id="2506" class="Symbol">{</a><a id="2507" href="Categories.NaturalTransformation.Dinatural.html#2507" class="Bound">X</a> <a id="2509" href="Categories.NaturalTransformation.Dinatural.html#2509" class="Bound">Y</a><a id="2510" class="Symbol">}</a> <a id="2512" class="Symbol">(</a><a id="2513" href="Categories.NaturalTransformation.Dinatural.html#2513" class="Bound">f</a> <a id="2515" class="Symbol">:</a> <a id="2517" href="Categories.NaturalTransformation.Dinatural.html#2231" class="Bound">C</a> <a id="2519" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="2521" href="Categories.NaturalTransformation.Dinatural.html#2507" class="Bound">X</a> <a id="2523" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="2525" href="Categories.NaturalTransformation.Dinatural.html#2509" class="Bound">Y</a> <a id="2527" href="Categories.Category.html#502" class="Function Operator">]</a><a id="2528" class="Symbol">)</a> <a id="2530" class="Symbol"></a>
<a id="2548" href="Categories.Category.html#1379" class="Function Operator">[</a> <a id="2550" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="2555" class="Symbol">(</a><a id="2556" href="Categories.NaturalTransformation.Dinatural.html#2509" class="Bound">Y</a> <a id="2558" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2560" href="Categories.NaturalTransformation.Dinatural.html#2507" class="Bound">X</a><a id="2561" class="Symbol">)</a> <a id="2563" href="Categories.Category.html#1379" class="Function Operator"></a> <a id="2565" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2570" class="Symbol">(</a><a id="2571" href="Categories.NaturalTransformation.Dinatural.html#2507" class="Bound">X</a> <a id="2573" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2575" href="Categories.NaturalTransformation.Dinatural.html#2509" class="Bound">Y</a><a id="2576" class="Symbol">)</a> <a id="2578" href="Categories.Category.html#1379" class="Function Operator">]⟨</a>
<a id="2599" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="2604" class="Symbol">(</a><a id="2605" href="Categories.NaturalTransformation.Dinatural.html#2513" class="Bound">f</a> <a id="2607" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2609" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="2613" class="Symbol">)</a> <a id="2627" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="2630" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="2635" class="Symbol">(</a><a id="2636" href="Categories.NaturalTransformation.Dinatural.html#2507" class="Bound">X</a> <a id="2638" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2640" href="Categories.NaturalTransformation.Dinatural.html#2507" class="Bound">X</a><a id="2641" class="Symbol">)</a> <a id="2643" href="Categories.Category.html#1481" class="Function"></a>
<a id="2663" href="Categories.NaturalTransformation.Dinatural.html#2434" class="Field">α</a> <a id="2665" href="Categories.NaturalTransformation.Dinatural.html#2507" class="Bound">X</a> <a id="2691" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="2694" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2699" class="Symbol">(</a><a id="2700" href="Categories.NaturalTransformation.Dinatural.html#2507" class="Bound">X</a> <a id="2702" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2704" href="Categories.NaturalTransformation.Dinatural.html#2507" class="Bound">X</a><a id="2705" class="Symbol">)</a> <a id="2707" href="Categories.Category.html#1481" class="Function"></a>
<a id="2727" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="2732" class="Symbol">(</a><a id="2733" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="2738" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2740" href="Categories.NaturalTransformation.Dinatural.html#2513" class="Bound">f</a><a id="2741" class="Symbol">)</a>
<a id="2759" href="Categories.Category.html#1379" class="Function Operator"></a> <a id="2761" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="2766" class="Symbol">(</a><a id="2767" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="2772" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2774" href="Categories.NaturalTransformation.Dinatural.html#2513" class="Bound">f</a><a id="2775" class="Symbol">)</a> <a id="2789" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="2792" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="2797" class="Symbol">(</a><a id="2798" href="Categories.NaturalTransformation.Dinatural.html#2509" class="Bound">Y</a> <a id="2800" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2802" href="Categories.NaturalTransformation.Dinatural.html#2509" class="Bound">Y</a><a id="2803" class="Symbol">)</a> <a id="2805" href="Categories.Category.html#1481" class="Function"></a>
<a id="2825" href="Categories.NaturalTransformation.Dinatural.html#2434" class="Field">α</a> <a id="2827" href="Categories.NaturalTransformation.Dinatural.html#2509" class="Bound">Y</a> <a id="2853" href="Categories.Category.html#1481" class="Function">⇒⟨</a> <a id="2856" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="2861" class="Symbol">(</a><a id="2862" href="Categories.NaturalTransformation.Dinatural.html#2509" class="Bound">Y</a> <a id="2864" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2866" href="Categories.NaturalTransformation.Dinatural.html#2509" class="Bound">Y</a><a id="2867" class="Symbol">)</a> <a id="2869" href="Categories.Category.html#1481" class="Function"></a>
<a id="2889" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="2894" class="Symbol">(</a><a id="2895" href="Categories.NaturalTransformation.Dinatural.html#2513" class="Bound">f</a> <a id="2897" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2899" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="2903" class="Symbol">)</a>
<a id="2921" href="Categories.Category.html#1379" class="Function Operator"></a>
<a id="dtHelper"></a><a id="2924" href="Categories.NaturalTransformation.Dinatural.html#2924" class="Function">dtHelper</a> <a id="2933" class="Symbol">:</a> <a id="2935" class="Symbol"></a> <a id="2937" class="Symbol">{</a><a id="2938" href="Categories.NaturalTransformation.Dinatural.html#2938" class="Bound">F</a> <a id="2940" href="Categories.NaturalTransformation.Dinatural.html#2940" class="Bound">G</a> <a id="2942" class="Symbol">:</a> <a id="2944" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="2954" class="Symbol">(</a><a id="2955" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="2967" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a><a id="2968" class="Symbol">)</a> <a id="2970" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a> <a id="2972" href="Categories.NaturalTransformation.Dinatural.html#549" class="Generalizable">D</a><a id="2973" class="Symbol">}</a> <a id="2975" class="Symbol"></a> <a id="2977" href="Categories.NaturalTransformation.Dinatural.html#2192" class="Record">DTHelper</a> <a id="2986" href="Categories.NaturalTransformation.Dinatural.html#2938" class="Bound">F</a> <a id="2988" href="Categories.NaturalTransformation.Dinatural.html#2940" class="Bound">G</a> <a id="2990" class="Symbol"></a> <a id="2992" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="3016" href="Categories.NaturalTransformation.Dinatural.html#2938" class="Bound">F</a> <a id="3018" href="Categories.NaturalTransformation.Dinatural.html#2940" class="Bound">G</a>
<a id="3020" href="Categories.NaturalTransformation.Dinatural.html#2924" class="Function">dtHelper</a> <a id="3029" class="Symbol">{</a><a id="3030" class="Argument">D</a> <a id="3032" class="Symbol">=</a> <a id="3034" href="Categories.NaturalTransformation.Dinatural.html#3034" class="Bound">D</a><a id="3035" class="Symbol">}</a> <a id="3037" href="Categories.NaturalTransformation.Dinatural.html#3037" class="Bound">θ</a> <a id="3039" class="Symbol">=</a> <a id="3041" class="Keyword">record</a>
<a id="3050" class="Symbol">{</a> <a id="3052" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="3063" class="Symbol">=</a> <a id="3065" href="Categories.NaturalTransformation.Dinatural.html#2434" class="Field">α</a>
<a id="3069" class="Symbol">;</a> <a id="3071" href="Categories.NaturalTransformation.Dinatural.html#908" class="Field">commute</a> <a id="3082" class="Symbol">=</a> <a id="3084" href="Categories.NaturalTransformation.Dinatural.html#2491" class="Field">commute</a>
<a id="3094" class="Symbol">;</a> <a id="3096" href="Categories.NaturalTransformation.Dinatural.html#1509" class="Field">op-commute</a> <a id="3107" class="Symbol">=</a> <a id="3109" class="Symbol">λ</a> <a id="3111" href="Categories.NaturalTransformation.Dinatural.html#3111" class="Bound">f</a> <a id="3113" class="Symbol"></a> <a id="3115" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="3121" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="3123" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="3125" class="Symbol">(</a><a id="3126" href="Categories.NaturalTransformation.Dinatural.html#2491" class="Field">commute</a> <a id="3134" href="Categories.NaturalTransformation.Dinatural.html#3111" class="Bound">f</a><a id="3135" class="Symbol">)</a> <a id="3137" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="3139" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a>
<a id="3151" class="Symbol">}</a>
<a id="3155" class="Keyword">where</a> <a id="3161" class="Keyword">open</a> <a id="3166" href="Categories.NaturalTransformation.Dinatural.html#2192" class="Module">DTHelper</a> <a id="3175" href="Categories.NaturalTransformation.Dinatural.html#3037" class="Bound">θ</a>
<a id="3185" class="Keyword">open</a> <a id="3190" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="3199" href="Categories.NaturalTransformation.Dinatural.html#3034" class="Bound">D</a>
<a id="3209" class="Keyword">open</a> <a id="3214" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="3228" class="Keyword">module</a> <a id="3235" href="Categories.NaturalTransformation.Dinatural.html#3235" class="Module">_</a> <a id="3237" class="Symbol">{</a><a id="3238" href="Categories.NaturalTransformation.Dinatural.html#3238" class="Bound">F</a> <a id="3240" href="Categories.NaturalTransformation.Dinatural.html#3240" class="Bound">G</a> <a id="3242" href="Categories.NaturalTransformation.Dinatural.html#3242" class="Bound">H</a> <a id="3244" class="Symbol">:</a> <a id="3246" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="3256" class="Symbol">(</a><a id="3257" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="3269" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a><a id="3270" class="Symbol">)</a> <a id="3272" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a> <a id="3274" href="Categories.NaturalTransformation.Dinatural.html#549" class="Generalizable">D</a><a id="3275" class="Symbol">}</a> <a id="3277" class="Keyword">where</a>
<a id="3285" class="Keyword">private</a>
<a id="3297" class="Keyword">module</a> <a id="3304" href="Categories.NaturalTransformation.Dinatural.html#3304" class="Module">C</a> <a id="3306" class="Symbol">=</a> <a id="3308" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="3317" href="Categories.NaturalTransformation.Dinatural.html#3269" class="Bound">C</a>
<a id="3321" class="Keyword">open</a> <a id="3326" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="3335" href="Categories.NaturalTransformation.Dinatural.html#3274" class="Bound">D</a>
<a id="3339" class="Keyword">open</a> <a id="3344" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="3359" class="Keyword">open</a> <a id="3364" href="Categories.Functor.Core.html#248" class="Module">Functor</a>
<a id="3374" class="Keyword">open</a> <a id="3379" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="3382" href="Categories.NaturalTransformation.Dinatural.html#3274" class="Bound">D</a>
<a id="3387" class="Keyword">infixr</a> <a id="3394" class="Number">9</a> <a id="3396" href="Categories.NaturalTransformation.Dinatural.html#3420" class="Function Operator">_&lt;∘_</a>
<a id="3403" class="Keyword">infixl</a> <a id="3410" class="Number">9</a> <a id="3412" href="Categories.NaturalTransformation.Dinatural.html#4125" class="Function Operator">_∘&gt;_</a>
<a id="3420" href="Categories.NaturalTransformation.Dinatural.html#3420" class="Function Operator">_&lt;∘_</a> <a id="3425" class="Symbol">:</a> <a id="3427" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="3449" href="Categories.NaturalTransformation.Dinatural.html#3240" class="Bound">G</a> <a id="3451" href="Categories.NaturalTransformation.Dinatural.html#3242" class="Bound">H</a> <a id="3453" class="Symbol"></a> <a id="3455" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="3479" href="Categories.NaturalTransformation.Dinatural.html#3238" class="Bound">F</a> <a id="3481" href="Categories.NaturalTransformation.Dinatural.html#3240" class="Bound">G</a> <a id="3483" class="Symbol"></a> <a id="3485" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="3509" href="Categories.NaturalTransformation.Dinatural.html#3238" class="Bound">F</a> <a id="3511" href="Categories.NaturalTransformation.Dinatural.html#3242" class="Bound">H</a>
<a id="3515" href="Categories.NaturalTransformation.Dinatural.html#3515" class="Bound">θ</a> <a id="3517" href="Categories.NaturalTransformation.Dinatural.html#3420" class="Function Operator">&lt;</a> <a id="3520" href="Categories.NaturalTransformation.Dinatural.html#3520" class="Bound">β</a> <a id="3522" class="Symbol">=</a> <a id="3524" href="Categories.NaturalTransformation.Dinatural.html#2924" class="Function">dtHelper</a> <a id="3533" class="Keyword">record</a>
<a id="3544" class="Symbol">{</a> <a id="3546" href="Categories.NaturalTransformation.Dinatural.html#2434" class="Field">α</a> <a id="3554" class="Symbol">=</a> <a id="3556" class="Symbol">λ</a> <a id="3558" href="Categories.NaturalTransformation.Dinatural.html#3558" class="Bound">X</a> <a id="3560" class="Symbol"></a> <a id="3562" href="Categories.NaturalTransformation.Core.html#783" class="Function">η</a> <a id="3564" class="Symbol">(</a><a id="3565" href="Categories.NaturalTransformation.Dinatural.html#3558" class="Bound">X</a> <a id="3567" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3569" href="Categories.NaturalTransformation.Dinatural.html#3558" class="Bound">X</a><a id="3570" class="Symbol">)</a> <a id="3572" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3574" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="3576" href="Categories.NaturalTransformation.Dinatural.html#3558" class="Bound">X</a>
<a id="3582" class="Symbol">;</a> <a id="3584" href="Categories.NaturalTransformation.Dinatural.html#2491" class="Field">commute</a> <a id="3592" class="Symbol">=</a> <a id="3594" class="Symbol">λ</a> <a id="3596" class="Symbol">{</a><a id="3597" href="Categories.NaturalTransformation.Dinatural.html#3597" class="Bound">X</a> <a id="3599" href="Categories.NaturalTransformation.Dinatural.html#3599" class="Bound">Y</a><a id="3600" class="Symbol">}</a> <a id="3602" href="Categories.NaturalTransformation.Dinatural.html#3602" class="Bound">f</a> <a id="3604" class="Symbol"></a> <a id="3606" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="3618" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3621" href="Categories.NaturalTransformation.Dinatural.html#3242" class="Bound">H</a> <a id="3623" class="Symbol">(</a><a id="3624" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="3629" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3631" href="Categories.NaturalTransformation.Dinatural.html#3602" class="Bound">f</a><a id="3632" class="Symbol">)</a> <a id="3634" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3636" class="Symbol">(</a><a id="3637" href="Categories.NaturalTransformation.Core.html#783" class="Function">η</a> <a id="3639" class="Symbol">(</a><a id="3640" href="Categories.NaturalTransformation.Dinatural.html#3597" class="Bound">X</a> <a id="3642" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3644" href="Categories.NaturalTransformation.Dinatural.html#3597" class="Bound">X</a><a id="3645" class="Symbol">)</a> <a id="3647" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3649" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="3651" href="Categories.NaturalTransformation.Dinatural.html#3597" class="Bound">X</a><a id="3652" class="Symbol">)</a> <a id="3654" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3656" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3659" href="Categories.NaturalTransformation.Dinatural.html#3238" class="Bound">F</a> <a id="3661" class="Symbol">(</a><a id="3662" href="Categories.NaturalTransformation.Dinatural.html#3602" class="Bound">f</a> <a id="3664" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3666" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="3670" class="Symbol">)</a> <a id="3674" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="3678" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="3684" class="Symbol">(</a><a id="3685" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="3691" class="Symbol">(</a><a id="3692" href="Categories.NaturalTransformation.Core.html#827" class="Function">θ.commute</a> <a id="3702" class="Symbol">(</a><a id="3703" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="3708" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3710" href="Categories.NaturalTransformation.Dinatural.html#3602" class="Bound">f</a><a id="3711" class="Symbol">)))</a> <a id="3715" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="3723" class="Symbol">((</a><a id="3725" href="Categories.NaturalTransformation.Core.html#783" class="Function">η</a> <a id="3727" class="Symbol">(</a><a id="3728" href="Categories.NaturalTransformation.Dinatural.html#3597" class="Bound">X</a> <a id="3730" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3732" href="Categories.NaturalTransformation.Dinatural.html#3599" class="Bound">Y</a><a id="3733" class="Symbol">)</a> <a id="3735" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3737" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3740" href="Categories.NaturalTransformation.Dinatural.html#3240" class="Bound">G</a> <a id="3742" class="Symbol">(</a><a id="3743" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="3748" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3750" href="Categories.NaturalTransformation.Dinatural.html#3602" class="Bound">f</a><a id="3751" class="Symbol">))</a> <a id="3754" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3756" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="3758" href="Categories.NaturalTransformation.Dinatural.html#3597" class="Bound">X</a><a id="3759" class="Symbol">)</a> <a id="3761" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3763" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3766" href="Categories.NaturalTransformation.Dinatural.html#3238" class="Bound">F</a> <a id="3768" class="Symbol">(</a><a id="3769" href="Categories.NaturalTransformation.Dinatural.html#3602" class="Bound">f</a> <a id="3771" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3773" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="3777" class="Symbol">)</a> <a id="3779" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3782" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="3788" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="3790" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="3796" class="Symbol">(</a><a id="3797" href="Categories.NaturalTransformation.Dinatural.html#908" class="Field">β.commute</a> <a id="3807" href="Categories.NaturalTransformation.Dinatural.html#3602" class="Bound">f</a><a id="3808" class="Symbol">)</a> <a id="3810" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3818" href="Categories.NaturalTransformation.Core.html#783" class="Function">η</a> <a id="3820" class="Symbol">(</a><a id="3821" href="Categories.NaturalTransformation.Dinatural.html#3597" class="Bound">X</a> <a id="3823" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3825" href="Categories.NaturalTransformation.Dinatural.html#3599" class="Bound">Y</a><a id="3826" class="Symbol">)</a> <a id="3828" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3830" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3833" href="Categories.NaturalTransformation.Dinatural.html#3240" class="Bound">G</a> <a id="3835" class="Symbol">(</a><a id="3836" href="Categories.NaturalTransformation.Dinatural.html#3602" class="Bound">f</a> <a id="3838" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3840" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="3844" class="Symbol">)</a> <a id="3846" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3848" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="3850" href="Categories.NaturalTransformation.Dinatural.html#3599" class="Bound">Y</a> <a id="3852" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3854" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3857" href="Categories.NaturalTransformation.Dinatural.html#3238" class="Bound">F</a> <a id="3859" class="Symbol">(</a><a id="3860" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="3865" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3867" href="Categories.NaturalTransformation.Dinatural.html#3602" class="Bound">f</a><a id="3868" class="Symbol">)</a> <a id="3874" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3877" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="3883" class="Symbol">(</a><a id="3884" href="Categories.NaturalTransformation.Core.html#827" class="Function">θ.commute</a> <a id="3894" class="Symbol">(</a><a id="3895" href="Categories.NaturalTransformation.Dinatural.html#3602" class="Bound">f</a> <a id="3897" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3899" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="3903" class="Symbol">))</a> <a id="3906" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="3908" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="3914" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a> <a id="3924" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3932" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3935" href="Categories.NaturalTransformation.Dinatural.html#3242" class="Bound">H</a> <a id="3937" class="Symbol">(</a><a id="3938" href="Categories.NaturalTransformation.Dinatural.html#3602" class="Bound">f</a> <a id="3940" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3942" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="3946" class="Symbol">)</a> <a id="3948" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3950" class="Symbol">(</a><a id="3951" href="Categories.NaturalTransformation.Core.html#783" class="Function">η</a> <a id="3953" class="Symbol">(</a><a id="3954" href="Categories.NaturalTransformation.Dinatural.html#3599" class="Bound">Y</a> <a id="3956" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3958" href="Categories.NaturalTransformation.Dinatural.html#3599" class="Bound">Y</a><a id="3959" class="Symbol">)</a> <a id="3961" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3963" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="3965" href="Categories.NaturalTransformation.Dinatural.html#3599" class="Bound">Y</a><a id="3966" class="Symbol">)</a> <a id="3968" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="3970" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3973" href="Categories.NaturalTransformation.Dinatural.html#3238" class="Bound">F</a> <a id="3975" class="Symbol">(</a><a id="3976" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="3981" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3983" href="Categories.NaturalTransformation.Dinatural.html#3602" class="Bound">f</a><a id="3984" class="Symbol">)</a> <a id="3988" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="3994" class="Symbol">}</a>
<a id="4000" class="Keyword">where</a> <a id="4006" class="Keyword">module</a> <a id="4013" href="Categories.NaturalTransformation.Dinatural.html#4013" class="Module">θ</a> <a id="4015" class="Symbol">=</a> <a id="4017" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="4039" href="Categories.NaturalTransformation.Dinatural.html#3515" class="Bound">θ</a>
<a id="4051" class="Keyword">module</a> <a id="4058" href="Categories.NaturalTransformation.Dinatural.html#4058" class="Module">β</a> <a id="4060" class="Symbol">=</a> <a id="4062" href="Categories.NaturalTransformation.Dinatural.html#578" class="Module">DinaturalTransformation</a> <a id="4086" href="Categories.NaturalTransformation.Dinatural.html#3520" class="Bound">β</a>
<a id="4098" class="Keyword">open</a> <a id="4103" href="Categories.NaturalTransformation.Dinatural.html#4013" class="Module">θ</a>
<a id="4115" class="Keyword">open</a> <a id="4120" href="Categories.NaturalTransformation.Dinatural.html#4058" class="Module">β</a>
<a id="4125" href="Categories.NaturalTransformation.Dinatural.html#4125" class="Function Operator">_∘&gt;_</a> <a id="4130" class="Symbol">:</a> <a id="4132" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="4156" href="Categories.NaturalTransformation.Dinatural.html#3240" class="Bound">G</a> <a id="4158" href="Categories.NaturalTransformation.Dinatural.html#3242" class="Bound">H</a> <a id="4160" class="Symbol"></a> <a id="4162" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="4184" href="Categories.NaturalTransformation.Dinatural.html#3238" class="Bound">F</a> <a id="4186" href="Categories.NaturalTransformation.Dinatural.html#3240" class="Bound">G</a> <a id="4188" class="Symbol"></a> <a id="4190" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="4214" href="Categories.NaturalTransformation.Dinatural.html#3238" class="Bound">F</a> <a id="4216" href="Categories.NaturalTransformation.Dinatural.html#3242" class="Bound">H</a>
<a id="4220" href="Categories.NaturalTransformation.Dinatural.html#4220" class="Bound">β</a> <a id="4222" href="Categories.NaturalTransformation.Dinatural.html#4125" class="Function Operator">&gt;</a> <a id="4225" href="Categories.NaturalTransformation.Dinatural.html#4225" class="Bound">θ</a> <a id="4227" class="Symbol">=</a> <a id="4229" href="Categories.NaturalTransformation.Dinatural.html#2924" class="Function">dtHelper</a> <a id="4238" class="Keyword">record</a>
<a id="4249" class="Symbol">{</a> <a id="4251" href="Categories.NaturalTransformation.Dinatural.html#2434" class="Field">α</a> <a id="4259" class="Symbol">=</a> <a id="4261" class="Symbol">λ</a> <a id="4263" href="Categories.NaturalTransformation.Dinatural.html#4263" class="Bound">X</a> <a id="4265" class="Symbol"></a> <a id="4267" href="Categories.NaturalTransformation.Dinatural.html#851" class="Function">α</a> <a id="4269" href="Categories.NaturalTransformation.Dinatural.html#4263" class="Bound">X</a> <a id="4271" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4273" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4275" class="Symbol">(</a><a id="4276" href="Categories.NaturalTransformation.Dinatural.html#4263" class="Bound">X</a> <a id="4278" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4280" href="Categories.NaturalTransformation.Dinatural.html#4263" class="Bound">X</a><a id="4281" class="Symbol">)</a>
<a id="4287" class="Symbol">;</a> <a id="4289" href="Categories.NaturalTransformation.Dinatural.html#2491" class="Field">commute</a> <a id="4297" class="Symbol">=</a> <a id="4299" class="Symbol">λ</a> <a id="4301" class="Symbol">{</a><a id="4302" href="Categories.NaturalTransformation.Dinatural.html#4302" class="Bound">X</a> <a id="4304" href="Categories.NaturalTransformation.Dinatural.html#4304" class="Bound">Y</a><a id="4305" class="Symbol">}</a> <a id="4307" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a> <a id="4309" class="Symbol"></a> <a id="4311" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="4323" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4326" href="Categories.NaturalTransformation.Dinatural.html#3242" class="Bound">H</a> <a id="4328" class="Symbol">(</a><a id="4329" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="4334" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4336" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a><a id="4337" class="Symbol">)</a> <a id="4339" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4341" class="Symbol">(</a><a id="4342" href="Categories.NaturalTransformation.Dinatural.html#851" class="Function">α</a> <a id="4344" href="Categories.NaturalTransformation.Dinatural.html#4302" class="Bound">X</a> <a id="4346" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4348" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4350" class="Symbol">(</a><a id="4351" href="Categories.NaturalTransformation.Dinatural.html#4302" class="Bound">X</a> <a id="4353" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4355" href="Categories.NaturalTransformation.Dinatural.html#4302" class="Bound">X</a><a id="4356" class="Symbol">))</a> <a id="4359" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4361" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4364" href="Categories.NaturalTransformation.Dinatural.html#3238" class="Bound">F</a> <a id="4366" class="Symbol">(</a><a id="4367" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a> <a id="4369" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4371" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="4375" class="Symbol">)</a> <a id="4377" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4380" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="4388" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="4394" class="Symbol">(</a><a id="4395" href="Categories.NaturalTransformation.Core.html#827" class="Field">θ.commute</a> <a id="4405" class="Symbol">(</a><a id="4406" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a> <a id="4408" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4410" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="4414" class="Symbol">))</a> <a id="4417" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4425" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4428" href="Categories.NaturalTransformation.Dinatural.html#3242" class="Bound">H</a> <a id="4430" class="Symbol">(</a><a id="4431" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="4436" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4438" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a><a id="4439" class="Symbol">)</a> <a id="4441" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4443" href="Categories.NaturalTransformation.Dinatural.html#851" class="Function">α</a> <a id="4445" href="Categories.NaturalTransformation.Dinatural.html#4302" class="Bound">X</a> <a id="4447" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4449" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4452" href="Categories.NaturalTransformation.Dinatural.html#3240" class="Bound">G</a> <a id="4454" class="Symbol">(</a><a id="4455" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a> <a id="4457" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4459" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="4463" class="Symbol">)</a> <a id="4465" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4467" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4469" class="Symbol">(</a><a id="4470" href="Categories.NaturalTransformation.Dinatural.html#4304" class="Bound">Y</a> <a id="4472" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4474" href="Categories.NaturalTransformation.Dinatural.html#4302" class="Bound">X</a><a id="4475" class="Symbol">)</a> <a id="4479" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4482" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="4492" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a> <a id="4502" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="4504" href="Categories.Category.Core.html#1004" class="Function">sym-assoc</a> <a id="4514" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4522" class="Symbol">(</a><a id="4523" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4526" href="Categories.NaturalTransformation.Dinatural.html#3242" class="Bound">H</a> <a id="4528" class="Symbol">(</a><a id="4529" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="4534" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4536" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a><a id="4537" class="Symbol">)</a> <a id="4539" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4541" href="Categories.NaturalTransformation.Dinatural.html#851" class="Function">α</a> <a id="4543" href="Categories.NaturalTransformation.Dinatural.html#4302" class="Bound">X</a> <a id="4545" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4547" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4550" href="Categories.NaturalTransformation.Dinatural.html#3240" class="Bound">G</a> <a id="4552" class="Symbol">(</a><a id="4553" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a> <a id="4555" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4557" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="4561" class="Symbol">))</a> <a id="4564" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4566" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4568" class="Symbol">(</a><a id="4569" href="Categories.NaturalTransformation.Dinatural.html#4304" class="Bound">Y</a> <a id="4571" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4573" href="Categories.NaturalTransformation.Dinatural.html#4302" class="Bound">X</a><a id="4574" class="Symbol">)</a> <a id="4576" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4579" href="Categories.NaturalTransformation.Dinatural.html#908" class="Function">β.commute</a> <a id="4589" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a> <a id="4591" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="4599" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4607" class="Symbol">(</a><a id="4608" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4611" href="Categories.NaturalTransformation.Dinatural.html#3242" class="Bound">H</a> <a id="4613" class="Symbol">(</a><a id="4614" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a> <a id="4616" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4618" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="4622" class="Symbol">)</a> <a id="4624" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4626" href="Categories.NaturalTransformation.Dinatural.html#851" class="Function">α</a> <a id="4628" href="Categories.NaturalTransformation.Dinatural.html#4304" class="Bound">Y</a> <a id="4630" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4632" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4635" href="Categories.NaturalTransformation.Dinatural.html#3240" class="Bound">G</a> <a id="4637" class="Symbol">(</a><a id="4638" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="4643" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4645" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a><a id="4646" class="Symbol">))</a> <a id="4649" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4651" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4653" class="Symbol">(</a><a id="4654" href="Categories.NaturalTransformation.Dinatural.html#4304" class="Bound">Y</a> <a id="4656" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4658" href="Categories.NaturalTransformation.Dinatural.html#4302" class="Bound">X</a><a id="4659" class="Symbol">)</a> <a id="4661" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="4665" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="4671" class="Symbol">(</a><a id="4672" href="Categories.Category.Core.html#715" class="Function">assoc</a> <a id="4678" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="4680" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="4686" class="Symbol">(</a><a id="4687" href="Categories.NaturalTransformation.Core.html#827" class="Field">θ.commute</a> <a id="4697" class="Symbol">(</a><a id="4698" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="4703" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4705" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a><a id="4706" class="Symbol">)))</a> <a id="4710" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="4718" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4721" href="Categories.NaturalTransformation.Dinatural.html#3242" class="Bound">H</a> <a id="4723" class="Symbol">(</a><a id="4724" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a> <a id="4726" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4728" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="4732" class="Symbol">)</a> <a id="4734" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4736" class="Symbol">(</a><a id="4737" href="Categories.NaturalTransformation.Dinatural.html#851" class="Function">α</a> <a id="4739" href="Categories.NaturalTransformation.Dinatural.html#4304" class="Bound">Y</a> <a id="4741" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4743" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4745" class="Symbol">(</a><a id="4746" href="Categories.NaturalTransformation.Dinatural.html#4304" class="Bound">Y</a> <a id="4748" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4750" href="Categories.NaturalTransformation.Dinatural.html#4304" class="Bound">Y</a><a id="4751" class="Symbol">))</a> <a id="4754" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="4756" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4759" href="Categories.NaturalTransformation.Dinatural.html#3238" class="Bound">F</a> <a id="4761" class="Symbol">(</a><a id="4762" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="4767" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4769" href="Categories.NaturalTransformation.Dinatural.html#4307" class="Bound">f</a><a id="4770" class="Symbol">)</a> <a id="4772" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="4778" class="Symbol">}</a>
<a id="4784" class="Keyword">where</a> <a id="4790" class="Keyword">module</a> <a id="4797" href="Categories.NaturalTransformation.Dinatural.html#4797" class="Module">θ</a> <a id="4799" class="Symbol">=</a> <a id="4801" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="4823" href="Categories.NaturalTransformation.Dinatural.html#4225" class="Bound">θ</a>
<a id="4835" class="Keyword">module</a> <a id="4842" href="Categories.NaturalTransformation.Dinatural.html#4842" class="Module">β</a> <a id="4844" class="Symbol">=</a> <a id="4846" href="Categories.NaturalTransformation.Dinatural.html#578" class="Module">DinaturalTransformation</a> <a id="4870" href="Categories.NaturalTransformation.Dinatural.html#4220" class="Bound">β</a>
<a id="4882" class="Keyword">open</a> <a id="4887" href="Categories.NaturalTransformation.Dinatural.html#4797" class="Module">θ</a>
<a id="4899" class="Keyword">open</a> <a id="4904" href="Categories.NaturalTransformation.Dinatural.html#4842" class="Module">β</a>
<a id="4907" class="Keyword">module</a> <a id="4914" href="Categories.NaturalTransformation.Dinatural.html#4914" class="Module">_</a> <a id="4916" class="Symbol">{</a><a id="4917" href="Categories.NaturalTransformation.Dinatural.html#4917" class="Bound">F</a> <a id="4919" href="Categories.NaturalTransformation.Dinatural.html#4919" class="Bound">G</a> <a id="4921" class="Symbol">:</a> <a id="4923" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="4933" class="Symbol">(</a><a id="4934" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="4946" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a><a id="4947" class="Symbol">)</a> <a id="4949" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a> <a id="4951" href="Categories.NaturalTransformation.Dinatural.html#549" class="Generalizable">D</a><a id="4952" class="Symbol">}</a> <a id="4954" class="Keyword">where</a>
<a id="4962" class="Keyword">private</a>
<a id="4974" class="Keyword">module</a> <a id="4981" href="Categories.NaturalTransformation.Dinatural.html#4981" class="Module">C</a> <a id="4983" class="Symbol">=</a> <a id="4985" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="4994" href="Categories.NaturalTransformation.Dinatural.html#4946" class="Bound">C</a>
<a id="4998" class="Keyword">open</a> <a id="5003" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="5012" href="Categories.NaturalTransformation.Dinatural.html#4951" class="Bound">D</a>
<a id="5016" class="Keyword">open</a> <a id="5021" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="5036" class="Keyword">open</a> <a id="5041" href="Categories.Functor.Core.html#248" class="Module">Functor</a>
<a id="5051" class="Keyword">open</a> <a id="5056" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="5059" href="Categories.NaturalTransformation.Dinatural.html#4951" class="Bound">D</a>
<a id="5064" class="Keyword">infixl</a> <a id="5071" class="Number">9</a> <a id="5073" href="Categories.NaturalTransformation.Dinatural.html#5081" class="Function Operator">_∘ʳ_</a>
<a id="5081" href="Categories.NaturalTransformation.Dinatural.html#5081" class="Function Operator">_∘ʳ_</a> <a id="5086" class="Symbol">:</a> <a id="5088" class="Symbol"></a> <a id="5090" class="Symbol">{</a><a id="5091" href="Categories.NaturalTransformation.Dinatural.html#5091" class="Bound">E</a> <a id="5093" class="Symbol">:</a> <a id="5095" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="5104" href="Categories.NaturalTransformation.Dinatural.html#529" class="Generalizable">o</a> <a id="5106" href="Categories.NaturalTransformation.Dinatural.html#531" class="Generalizable"></a> <a id="5108" href="Categories.NaturalTransformation.Dinatural.html#533" class="Generalizable">e</a><a id="5109" class="Symbol">}</a> <a id="5111" class="Symbol"></a>
<a id="5124" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="5148" href="Categories.NaturalTransformation.Dinatural.html#4917" class="Bound">F</a> <a id="5150" href="Categories.NaturalTransformation.Dinatural.html#4919" class="Bound">G</a> <a id="5152" class="Symbol"></a> <a id="5154" class="Symbol">(</a><a id="5155" href="Categories.NaturalTransformation.Dinatural.html#5155" class="Bound">K</a> <a id="5157" class="Symbol">:</a> <a id="5159" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="5167" href="Categories.NaturalTransformation.Dinatural.html#5091" class="Bound">E</a> <a id="5169" href="Categories.NaturalTransformation.Dinatural.html#4946" class="Bound">C</a><a id="5170" class="Symbol">)</a> <a id="5172" class="Symbol"></a> <a id="5174" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="5198" class="Symbol">(</a><a id="5199" href="Categories.NaturalTransformation.Dinatural.html#4917" class="Bound">F</a> <a id="5201" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="5204" class="Symbol">((</a><a id="5206" href="Categories.Functor.Core.html#816" class="Function">Functor.op</a> <a id="5217" href="Categories.NaturalTransformation.Dinatural.html#5155" class="Bound">K</a><a id="5218" class="Symbol">)</a> <a id="5220" href="Categories.Category.Product.html#1962" class="Function Operator"></a> <a id="5222" href="Categories.NaturalTransformation.Dinatural.html#5155" class="Bound">K</a><a id="5223" class="Symbol">))</a> <a id="5226" class="Symbol">(</a><a id="5227" href="Categories.NaturalTransformation.Dinatural.html#4919" class="Bound">G</a> <a id="5229" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="5232" class="Symbol">((</a><a id="5234" href="Categories.Functor.Core.html#816" class="Function">Functor.op</a> <a id="5245" href="Categories.NaturalTransformation.Dinatural.html#5155" class="Bound">K</a><a id="5246" class="Symbol">)</a> <a id="5248" href="Categories.Category.Product.html#1962" class="Function Operator"></a> <a id="5250" href="Categories.NaturalTransformation.Dinatural.html#5155" class="Bound">K</a><a id="5251" class="Symbol">))</a>
<a id="5256" href="Categories.NaturalTransformation.Dinatural.html#5081" class="Function Operator">_∘ʳ_</a> <a id="5261" class="Symbol">{</a><a id="5262" class="Argument">E</a> <a id="5264" class="Symbol">=</a> <a id="5266" href="Categories.NaturalTransformation.Dinatural.html#5266" class="Bound">E</a><a id="5267" class="Symbol">}</a> <a id="5269" href="Categories.NaturalTransformation.Dinatural.html#5269" class="Bound">β</a> <a id="5271" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5273" class="Symbol">=</a> <a id="5275" href="Categories.NaturalTransformation.Dinatural.html#2924" class="Function">dtHelper</a> <a id="5284" class="Keyword">record</a>
<a id="5295" class="Symbol">{</a> <a id="5297" href="Categories.NaturalTransformation.Dinatural.html#2434" class="Field">α</a> <a id="5305" class="Symbol">=</a> <a id="5307" class="Symbol">λ</a> <a id="5309" href="Categories.NaturalTransformation.Dinatural.html#5309" class="Bound">X</a> <a id="5311" class="Symbol"></a> <a id="5313" href="Categories.NaturalTransformation.Dinatural.html#851" class="Function">α</a> <a id="5315" class="Symbol">(</a><a id="5316" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="5319" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5321" href="Categories.NaturalTransformation.Dinatural.html#5309" class="Bound">X</a><a id="5322" class="Symbol">)</a>
<a id="5328" class="Symbol">;</a> <a id="5330" href="Categories.NaturalTransformation.Dinatural.html#2491" class="Field">commute</a> <a id="5338" class="Symbol">=</a> <a id="5340" class="Symbol">λ</a> <a id="5342" class="Symbol">{</a><a id="5343" href="Categories.NaturalTransformation.Dinatural.html#5343" class="Bound">X</a> <a id="5345" href="Categories.NaturalTransformation.Dinatural.html#5345" class="Bound">Y</a><a id="5346" class="Symbol">}</a> <a id="5348" href="Categories.NaturalTransformation.Dinatural.html#5348" class="Bound">f</a> <a id="5350" class="Symbol"></a> <a id="5352" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="5364" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5367" href="Categories.NaturalTransformation.Dinatural.html#4919" class="Bound">G</a> <a id="5369" class="Symbol">(</a><a id="5370" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5373" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5375" href="Categories.Category.Core.html#630" class="Function">E.id</a> <a id="5380" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5382" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5385" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5387" href="Categories.NaturalTransformation.Dinatural.html#5348" class="Bound">f</a><a id="5388" class="Symbol">)</a> <a id="5390" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5392" href="Categories.NaturalTransformation.Dinatural.html#851" class="Function">α</a> <a id="5394" class="Symbol">(</a><a id="5395" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="5398" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5400" href="Categories.NaturalTransformation.Dinatural.html#5343" class="Bound">X</a><a id="5401" class="Symbol">)</a> <a id="5403" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5405" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5408" href="Categories.NaturalTransformation.Dinatural.html#4917" class="Bound">F</a> <a id="5410" class="Symbol">(</a><a id="5411" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5414" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5416" href="Categories.NaturalTransformation.Dinatural.html#5348" class="Bound">f</a> <a id="5418" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5420" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5423" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5425" href="Categories.Category.Core.html#630" class="Function">E.id</a><a id="5429" class="Symbol">)</a>
<a id="5439" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5442" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="5451" href="Categories.NaturalTransformation.Dinatural.html#4919" class="Bound">G</a> <a id="5453" class="Symbol">(</a><a id="5454" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="5463" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5465" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5467" href="Relation.Binary.Structures.html#1577" class="Function">C.Equiv.refl</a><a id="5479" class="Symbol">)</a> <a id="5481" href="Categories.Category.Core.html#2634" class="Function Operator">⟩∘⟨</a> <a id="5485" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a> <a id="5496" href="Categories.Category.Core.html#2634" class="Function Operator">⟩∘⟨</a> <a id="5500" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="5509" href="Categories.NaturalTransformation.Dinatural.html#4917" class="Bound">F</a> <a id="5511" class="Symbol">(</a><a id="5512" href="Relation.Binary.Structures.html#1577" class="Function">C.Equiv.refl</a> <a id="5525" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5527" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="5536" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a><a id="5537" class="Symbol">)</a> <a id="5539" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5547" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5550" href="Categories.NaturalTransformation.Dinatural.html#4919" class="Bound">G</a> <a id="5552" class="Symbol">(</a><a id="5553" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="5558" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5560" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5563" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5565" href="Categories.NaturalTransformation.Dinatural.html#5348" class="Bound">f</a><a id="5566" class="Symbol">)</a> <a id="5568" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5570" href="Categories.NaturalTransformation.Dinatural.html#851" class="Function">α</a> <a id="5572" class="Symbol">(</a><a id="5573" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="5576" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5578" href="Categories.NaturalTransformation.Dinatural.html#5343" class="Bound">X</a><a id="5579" class="Symbol">)</a> <a id="5581" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5583" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5586" href="Categories.NaturalTransformation.Dinatural.html#4917" class="Bound">F</a> <a id="5588" class="Symbol">(</a><a id="5589" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5592" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5594" href="Categories.NaturalTransformation.Dinatural.html#5348" class="Bound">f</a> <a id="5596" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5598" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="5602" class="Symbol">)</a>
<a id="5612" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5615" href="Categories.NaturalTransformation.Dinatural.html#908" class="Function">commute</a> <a id="5623" class="Symbol">(</a><a id="5624" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5627" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5629" href="Categories.NaturalTransformation.Dinatural.html#5348" class="Bound">f</a><a id="5630" class="Symbol">)</a> <a id="5632" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5640" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5643" href="Categories.NaturalTransformation.Dinatural.html#4919" class="Bound">G</a> <a id="5645" class="Symbol">(</a><a id="5646" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5649" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5651" href="Categories.NaturalTransformation.Dinatural.html#5348" class="Bound">f</a> <a id="5653" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5655" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="5659" class="Symbol">)</a> <a id="5661" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5663" href="Categories.NaturalTransformation.Dinatural.html#851" class="Function">α</a> <a id="5665" class="Symbol">(</a><a id="5666" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="5669" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5671" href="Categories.NaturalTransformation.Dinatural.html#5345" class="Bound">Y</a><a id="5672" class="Symbol">)</a> <a id="5674" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5676" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5679" href="Categories.NaturalTransformation.Dinatural.html#4917" class="Bound">F</a> <a id="5681" class="Symbol">(</a><a id="5682" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="5687" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5689" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5692" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5694" href="Categories.NaturalTransformation.Dinatural.html#5348" class="Bound">f</a><a id="5695" class="Symbol">)</a>
<a id="5705" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="5709" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="5718" href="Categories.NaturalTransformation.Dinatural.html#4919" class="Bound">G</a> <a id="5720" class="Symbol">(</a><a id="5721" href="Relation.Binary.Structures.html#1577" class="Function">C.Equiv.refl</a> <a id="5734" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5736" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="5745" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a><a id="5746" class="Symbol">)</a> <a id="5748" href="Categories.Category.Core.html#2634" class="Function Operator">⟩∘⟨</a> <a id="5752" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a> <a id="5763" href="Categories.Category.Core.html#2634" class="Function Operator">⟩∘⟨</a> <a id="5767" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="5776" href="Categories.NaturalTransformation.Dinatural.html#4917" class="Bound">F</a> <a id="5778" class="Symbol">(</a><a id="5779" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="5788" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5790" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5792" href="Relation.Binary.Structures.html#1577" class="Function">C.Equiv.refl</a><a id="5804" class="Symbol">)</a> <a id="5806" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function"></a>
<a id="5814" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5817" href="Categories.NaturalTransformation.Dinatural.html#4919" class="Bound">G</a> <a id="5819" class="Symbol">(</a><a id="5820" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5823" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5825" href="Categories.NaturalTransformation.Dinatural.html#5348" class="Bound">f</a> <a id="5827" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5829" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5832" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5834" href="Categories.Category.Core.html#630" class="Function">E.id</a><a id="5838" class="Symbol">)</a> <a id="5840" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5842" href="Categories.NaturalTransformation.Dinatural.html#851" class="Function">α</a> <a id="5844" class="Symbol">(</a><a id="5845" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="5848" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5850" href="Categories.NaturalTransformation.Dinatural.html#5345" class="Bound">Y</a><a id="5851" class="Symbol">)</a> <a id="5853" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="5855" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5858" href="Categories.NaturalTransformation.Dinatural.html#4917" class="Bound">F</a> <a id="5860" class="Symbol">(</a><a id="5861" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5864" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5866" href="Categories.Category.Core.html#630" class="Function">E.id</a> <a id="5871" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5873" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5876" href="Categories.NaturalTransformation.Dinatural.html#5271" class="Bound">K</a> <a id="5878" href="Categories.NaturalTransformation.Dinatural.html#5348" class="Bound">f</a><a id="5879" class="Symbol">)</a>
<a id="5889" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="5895" class="Symbol">}</a>
<a id="5901" class="Keyword">where</a> <a id="5907" class="Keyword">module</a> <a id="5914" href="Categories.NaturalTransformation.Dinatural.html#5914" class="Module">β</a> <a id="5916" class="Symbol">=</a> <a id="5918" href="Categories.NaturalTransformation.Dinatural.html#578" class="Module">DinaturalTransformation</a> <a id="5942" href="Categories.NaturalTransformation.Dinatural.html#5269" class="Bound">β</a>
<a id="5954" class="Keyword">module</a> <a id="5961" href="Categories.NaturalTransformation.Dinatural.html#5961" class="Module">E</a> <a id="5963" class="Symbol">=</a> <a id="5965" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="5974" href="Categories.NaturalTransformation.Dinatural.html#5266" class="Bound">E</a>
<a id="5986" class="Keyword">open</a> <a id="5991" href="Categories.NaturalTransformation.Dinatural.html#5914" class="Module">β</a>
<a id="5996" class="Keyword">infix</a> <a id="6002" class="Number">4</a> <a id="6004" href="Categories.NaturalTransformation.Dinatural.html#6011" class="Function Operator">_≃_</a>
<a id="6011" href="Categories.NaturalTransformation.Dinatural.html#6011" class="Function Operator">_≃_</a> <a id="6015" class="Symbol">:</a> <a id="6017" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="6021" class="Symbol">(</a><a id="6022" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="6046" href="Categories.NaturalTransformation.Dinatural.html#4917" class="Bound">F</a> <a id="6048" href="Categories.NaturalTransformation.Dinatural.html#4919" class="Bound">G</a><a id="6049" class="Symbol">)</a> <a id="6051" class="Symbol">_</a>
<a id="6055" href="Categories.NaturalTransformation.Dinatural.html#6055" class="Bound">β</a> <a id="6057" href="Categories.NaturalTransformation.Dinatural.html#6011" class="Function Operator"></a> <a id="6059" href="Categories.NaturalTransformation.Dinatural.html#6059" class="Bound">δ</a> <a id="6061" class="Symbol">=</a> <a id="6063" class="Symbol"></a> <a id="6065" class="Symbol">{</a><a id="6066" href="Categories.NaturalTransformation.Dinatural.html#6066" class="Bound">X</a><a id="6067" class="Symbol">}</a> <a id="6069" class="Symbol"></a> <a id="6071" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="6073" href="Categories.NaturalTransformation.Dinatural.html#6055" class="Bound">β</a> <a id="6075" href="Categories.NaturalTransformation.Dinatural.html#6066" class="Bound">X</a> <a id="6077" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="6079" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="6081" href="Categories.NaturalTransformation.Dinatural.html#6059" class="Bound">δ</a> <a id="6083" href="Categories.NaturalTransformation.Dinatural.html#6066" class="Bound">X</a>
<a id="6089" class="Keyword">where</a> <a id="6095" class="Keyword">open</a> <a id="6100" href="Categories.NaturalTransformation.Dinatural.html#578" class="Module">DinaturalTransformation</a>
<a id="6127" href="Categories.NaturalTransformation.Dinatural.html#6127" class="Function">≃-isEquivalence</a> <a id="6143" class="Symbol">:</a> <a id="6145" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a> <a id="6159" href="Categories.NaturalTransformation.Dinatural.html#6011" class="Function Operator">_≃_</a>
<a id="6165" href="Categories.NaturalTransformation.Dinatural.html#6127" class="Function">≃-isEquivalence</a> <a id="6181" class="Symbol">=</a> <a id="6183" class="Keyword">record</a>
<a id="6194" class="Symbol">{</a> <a id="6196" href="Relation.Binary.Structures.html#1577" class="Field">refl</a> <a id="6202" class="Symbol">=</a> <a id="6204" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a>
<a id="6219" class="Symbol">;</a> <a id="6221" href="Relation.Binary.Structures.html#1603" class="Field">sym</a> <a id="6227" class="Symbol">=</a> <a id="6229" class="Symbol">λ</a> <a id="6231" href="Categories.NaturalTransformation.Dinatural.html#6231" class="Bound">eq</a> <a id="6234" class="Symbol"></a> <a id="6236" href="Relation.Binary.Structures.html#1603" class="Function">Equiv.sym</a> <a id="6246" href="Categories.NaturalTransformation.Dinatural.html#6231" class="Bound">eq</a>
<a id="6253" class="Symbol">;</a> <a id="6255" href="Relation.Binary.Structures.html#1629" class="Field">trans</a> <a id="6261" class="Symbol">=</a> <a id="6263" class="Symbol">λ</a> <a id="6265" href="Categories.NaturalTransformation.Dinatural.html#6265" class="Bound">eq</a> <a id="6268" href="Categories.NaturalTransformation.Dinatural.html#6268" class="Bound">eq</a> <a id="6272" class="Symbol"></a> <a id="6274" href="Relation.Binary.Structures.html#1629" class="Function">Equiv.trans</a> <a id="6286" href="Categories.NaturalTransformation.Dinatural.html#6265" class="Bound">eq</a> <a id="6289" href="Categories.NaturalTransformation.Dinatural.html#6268" class="Bound">eq</a>
<a id="6297" class="Symbol">}</a>
<a id="6302" href="Categories.NaturalTransformation.Dinatural.html#6302" class="Function">≃-setoid</a> <a id="6311" class="Symbol">:</a> <a id="6313" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="6320" class="Symbol">_</a> <a id="6322" class="Symbol">_</a>
<a id="6326" href="Categories.NaturalTransformation.Dinatural.html#6302" class="Function">≃-setoid</a> <a id="6335" class="Symbol">=</a> <a id="6337" class="Keyword">record</a>
<a id="6348" class="Symbol">{</a> <a id="6350" href="Relation.Binary.Bundles.html#1081" class="Field">Carrier</a> <a id="6364" class="Symbol">=</a> <a id="6366" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="6390" href="Categories.NaturalTransformation.Dinatural.html#4917" class="Bound">F</a> <a id="6392" href="Categories.NaturalTransformation.Dinatural.html#4919" class="Bound">G</a>
<a id="6398" class="Symbol">;</a> <a id="6400" href="Relation.Binary.Bundles.html#1107" class="Field Operator">_≈_</a> <a id="6414" class="Symbol">=</a> <a id="6416" href="Categories.NaturalTransformation.Dinatural.html#6011" class="Function Operator">_≃_</a>
<a id="6424" class="Symbol">;</a> <a id="6426" href="Relation.Binary.Bundles.html#1141" class="Field">isEquivalence</a> <a id="6440" class="Symbol">=</a> <a id="6442" href="Categories.NaturalTransformation.Dinatural.html#6127" class="Function">≃-isEquivalence</a>
<a id="6462" class="Symbol">}</a>
<a id="6466" class="Comment">-- for convenience, the following are some helpers for the cases</a>
<a id="6531" class="Comment">-- in which the bifunctor on the right is extranatural.</a>
<a id="Extranaturalʳ"></a><a id="6587" href="Categories.NaturalTransformation.Dinatural.html#6587" class="Function">Extranaturalʳ</a> <a id="6601" class="Symbol">:</a> <a id="6603" class="Symbol"></a> <a id="6605" class="Symbol">{</a><a id="6606" href="Categories.NaturalTransformation.Dinatural.html#6606" class="Bound">C</a> <a id="6608" class="Symbol">:</a> <a id="6610" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="6619" href="Categories.NaturalTransformation.Dinatural.html#529" class="Generalizable">o</a> <a id="6621" href="Categories.NaturalTransformation.Dinatural.html#531" class="Generalizable"></a> <a id="6623" href="Categories.NaturalTransformation.Dinatural.html#533" class="Generalizable">e</a><a id="6624" class="Symbol">}</a> <a id="6626" class="Symbol"></a> <a id="6628" href="Categories.Category.Core.html#559" class="Field">Category.Obj</a> <a id="6641" href="Categories.NaturalTransformation.Dinatural.html#549" class="Generalizable">D</a> <a id="6643" class="Symbol"></a> <a id="6645" class="Symbol">(</a><a id="6646" href="Categories.NaturalTransformation.Dinatural.html#6646" class="Bound">F</a> <a id="6648" class="Symbol">:</a> <a id="6650" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="6660" class="Symbol">(</a><a id="6661" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="6673" href="Categories.NaturalTransformation.Dinatural.html#6606" class="Bound">C</a><a id="6674" class="Symbol">)</a> <a id="6676" href="Categories.NaturalTransformation.Dinatural.html#6606" class="Bound">C</a> <a id="6678" href="Categories.NaturalTransformation.Dinatural.html#549" class="Generalizable">D</a><a id="6679" class="Symbol">)</a> <a id="6681" class="Symbol"></a> <a id="6683" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="6687" class="Symbol">_</a>
<a id="6689" href="Categories.NaturalTransformation.Dinatural.html#6587" class="Function">Extranaturalʳ</a> <a id="6703" href="Categories.NaturalTransformation.Dinatural.html#6703" class="Bound">A</a> <a id="6705" href="Categories.NaturalTransformation.Dinatural.html#6705" class="Bound">F</a> <a id="6707" class="Symbol">=</a> <a id="6709" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="6733" class="Symbol">(</a><a id="6734" href="Categories.Functor.Construction.Constant.html#461" class="Function">const</a> <a id="6740" href="Categories.NaturalTransformation.Dinatural.html#6703" class="Bound">A</a><a id="6741" class="Symbol">)</a> <a id="6743" href="Categories.NaturalTransformation.Dinatural.html#6705" class="Bound">F</a>
<a id="Extranaturalˡ"></a><a id="6746" href="Categories.NaturalTransformation.Dinatural.html#6746" class="Function">Extranaturalˡ</a> <a id="6760" class="Symbol">:</a> <a id="6762" class="Symbol"></a> <a id="6764" class="Symbol">{</a><a id="6765" href="Categories.NaturalTransformation.Dinatural.html#6765" class="Bound">C</a> <a id="6767" class="Symbol">:</a> <a id="6769" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="6778" href="Categories.NaturalTransformation.Dinatural.html#529" class="Generalizable">o</a> <a id="6780" href="Categories.NaturalTransformation.Dinatural.html#531" class="Generalizable"></a> <a id="6782" href="Categories.NaturalTransformation.Dinatural.html#533" class="Generalizable">e</a><a id="6783" class="Symbol">}</a> <a id="6785" class="Symbol"></a> <a id="6787" class="Symbol">(</a><a id="6788" href="Categories.NaturalTransformation.Dinatural.html#6788" class="Bound">F</a> <a id="6790" class="Symbol">:</a> <a id="6792" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="6802" class="Symbol">(</a><a id="6803" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="6815" href="Categories.NaturalTransformation.Dinatural.html#6765" class="Bound">C</a><a id="6816" class="Symbol">)</a> <a id="6818" href="Categories.NaturalTransformation.Dinatural.html#6765" class="Bound">C</a> <a id="6820" href="Categories.NaturalTransformation.Dinatural.html#549" class="Generalizable">D</a><a id="6821" class="Symbol">)</a> <a id="6823" class="Symbol"></a> <a id="6825" href="Categories.Category.Core.html#559" class="Field">Category.Obj</a> <a id="6838" href="Categories.NaturalTransformation.Dinatural.html#549" class="Generalizable">D</a> <a id="6840" class="Symbol"></a> <a id="6842" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="6846" class="Symbol">_</a>
<a id="6848" href="Categories.NaturalTransformation.Dinatural.html#6746" class="Function">Extranaturalˡ</a> <a id="6862" href="Categories.NaturalTransformation.Dinatural.html#6862" class="Bound">F</a> <a id="6864" href="Categories.NaturalTransformation.Dinatural.html#6864" class="Bound">A</a> <a id="6866" class="Symbol">=</a> <a id="6868" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="6892" href="Categories.NaturalTransformation.Dinatural.html#6862" class="Bound">F</a> <a id="6894" class="Symbol">(</a><a id="6895" href="Categories.Functor.Construction.Constant.html#461" class="Function">const</a> <a id="6901" href="Categories.NaturalTransformation.Dinatural.html#6864" class="Bound">A</a><a id="6902" class="Symbol">)</a>
<a id="6905" class="Keyword">module</a> <a id="6912" href="Categories.NaturalTransformation.Dinatural.html#6912" class="Module">_</a> <a id="6914" class="Symbol">{</a><a id="6915" href="Categories.NaturalTransformation.Dinatural.html#6915" class="Bound">F</a> <a id="6917" class="Symbol">:</a> <a id="6919" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="6929" class="Symbol">(</a><a id="6930" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="6942" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a><a id="6943" class="Symbol">)</a> <a id="6945" href="Categories.NaturalTransformation.Dinatural.html#547" class="Generalizable">C</a> <a id="6947" href="Categories.NaturalTransformation.Dinatural.html#549" class="Generalizable">D</a><a id="6948" class="Symbol">}</a> <a id="6950" class="Keyword">where</a>
<a id="6958" class="Keyword">open</a> <a id="6963" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="6972" href="Categories.NaturalTransformation.Dinatural.html#6947" class="Bound">D</a>
<a id="6976" class="Keyword">private</a>
<a id="6988" class="Keyword">module</a> <a id="6995" href="Categories.NaturalTransformation.Dinatural.html#6995" class="Module">C</a> <a id="6997" class="Symbol">=</a> <a id="6999" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="7008" href="Categories.NaturalTransformation.Dinatural.html#6942" class="Bound">C</a>
<a id="7014" class="Keyword">variable</a>
<a id="7029" href="Categories.NaturalTransformation.Dinatural.html#7029" class="Generalizable">A</a> <a id="7031" class="Symbol">:</a> <a id="7033" href="Categories.Category.Core.html#559" class="Function">Obj</a>
<a id="7043" href="Categories.NaturalTransformation.Dinatural.html#7043" class="Generalizable">X</a> <a id="7045" href="Categories.NaturalTransformation.Dinatural.html#7045" class="Generalizable">Y</a> <a id="7047" class="Symbol">:</a> <a id="7049" href="Categories.Category.Core.html#559" class="Function">C.Obj</a>
<a id="7061" href="Categories.NaturalTransformation.Dinatural.html#7061" class="Generalizable">f</a> <a id="7063" class="Symbol">:</a> <a id="7065" href="Categories.NaturalTransformation.Dinatural.html#7043" class="Generalizable">X</a> <a id="7067" href="Categories.Category.Core.html#575" class="Function Operator">C.⇒</a> <a id="7071" href="Categories.NaturalTransformation.Dinatural.html#7045" class="Generalizable">Y</a>
<a id="7075" class="Keyword">open</a> <a id="7080" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="7088" href="Categories.NaturalTransformation.Dinatural.html#6915" class="Bound">F</a>
<a id="7092" class="Keyword">open</a> <a id="7097" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="7112" class="Keyword">open</a> <a id="7117" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="7120" href="Categories.NaturalTransformation.Dinatural.html#6947" class="Bound">D</a>
<a id="7125" href="Categories.NaturalTransformation.Dinatural.html#7125" class="Function">extranaturalʳ</a> <a id="7139" class="Symbol">:</a> <a id="7141" class="Symbol">(</a><a id="7142" href="Categories.NaturalTransformation.Dinatural.html#7142" class="Bound">a</a> <a id="7144" class="Symbol">:</a> <a id="7146" class="Symbol"></a> <a id="7148" href="Categories.NaturalTransformation.Dinatural.html#7148" class="Bound">X</a> <a id="7150" class="Symbol"></a> <a id="7152" href="Categories.NaturalTransformation.Dinatural.html#7029" class="Generalizable">A</a> <a id="7154" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="7156" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="7159" class="Symbol">(</a><a id="7160" href="Categories.NaturalTransformation.Dinatural.html#7148" class="Bound">X</a> <a id="7162" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="7164" href="Categories.NaturalTransformation.Dinatural.html#7148" class="Bound">X</a><a id="7165" class="Symbol">))</a> <a id="7168" class="Symbol"></a>
<a id="7188" class="Symbol">(∀</a> <a id="7191" class="Symbol">{</a><a id="7192" href="Categories.NaturalTransformation.Dinatural.html#7192" class="Bound">X</a> <a id="7194" href="Categories.NaturalTransformation.Dinatural.html#7194" class="Bound">X</a> <a id="7197" href="Categories.NaturalTransformation.Dinatural.html#7197" class="Bound">f</a><a id="7198" class="Symbol">}</a> <a id="7200" class="Symbol"></a> <a id="7202" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="7205" class="Symbol">(</a><a id="7206" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="7211" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="7213" href="Categories.NaturalTransformation.Dinatural.html#7197" class="Bound">f</a><a id="7214" class="Symbol">)</a> <a id="7216" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7218" href="Categories.NaturalTransformation.Dinatural.html#7142" class="Bound">a</a> <a id="7220" href="Categories.NaturalTransformation.Dinatural.html#7192" class="Bound">X</a> <a id="7222" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="7224" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="7227" class="Symbol">(</a><a id="7228" href="Categories.NaturalTransformation.Dinatural.html#7197" class="Bound">f</a> <a id="7230" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="7232" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="7236" class="Symbol">)</a> <a id="7238" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7240" href="Categories.NaturalTransformation.Dinatural.html#7142" class="Bound">a</a> <a id="7242" href="Categories.NaturalTransformation.Dinatural.html#7194" class="Bound">X</a><a id="7244" class="Symbol">)</a> <a id="7246" class="Symbol"></a>
<a id="7266" href="Categories.NaturalTransformation.Dinatural.html#6587" class="Function">Extranaturalʳ</a> <a id="7280" href="Categories.NaturalTransformation.Dinatural.html#7029" class="Generalizable">A</a> <a id="7282" href="Categories.NaturalTransformation.Dinatural.html#6915" class="Bound">F</a>
<a id="7286" href="Categories.NaturalTransformation.Dinatural.html#7125" class="Function">extranaturalʳ</a> <a id="7300" href="Categories.NaturalTransformation.Dinatural.html#7300" class="Bound">a</a> <a id="7302" href="Categories.NaturalTransformation.Dinatural.html#7302" class="Bound">comm</a> <a id="7307" class="Symbol">=</a> <a id="7309" href="Categories.NaturalTransformation.Dinatural.html#2924" class="Function">dtHelper</a> <a id="7318" class="Keyword">record</a>
<a id="7329" class="Symbol">{</a> <a id="7331" href="Categories.NaturalTransformation.Dinatural.html#2434" class="Field">α</a> <a id="7339" class="Symbol">=</a> <a id="7341" href="Categories.NaturalTransformation.Dinatural.html#7300" class="Bound">a</a>
<a id="7347" class="Symbol">;</a> <a id="7349" href="Categories.NaturalTransformation.Dinatural.html#2491" class="Field">commute</a> <a id="7357" class="Symbol">=</a> <a id="7359" class="Symbol">λ</a> <a id="7361" href="Categories.NaturalTransformation.Dinatural.html#7361" class="Bound">f</a> <a id="7363" class="Symbol"></a> <a id="7365" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="7375" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="7385" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="7387" href="Categories.NaturalTransformation.Dinatural.html#7302" class="Bound">comm</a> <a id="7392" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="7394" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="7404" class="Symbol">(</a><a id="7405" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="7407" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a><a id="7416" class="Symbol">)</a>
<a id="7422" class="Symbol">}</a>
<a id="7427" class="Keyword">open</a> <a id="7432" href="Categories.NaturalTransformation.Dinatural.html#578" class="Module">DinaturalTransformation</a>
<a id="7459" href="Categories.NaturalTransformation.Dinatural.html#7459" class="Function">extranatural-commʳ</a> <a id="7478" class="Symbol">:</a> <a id="7480" class="Symbol">(</a><a id="7481" href="Categories.NaturalTransformation.Dinatural.html#7481" class="Bound">β</a> <a id="7483" class="Symbol">:</a> <a id="7485" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="7509" class="Symbol">(</a><a id="7510" href="Categories.Functor.Construction.Constant.html#461" class="Function">const</a> <a id="7516" href="Categories.NaturalTransformation.Dinatural.html#7029" class="Generalizable">A</a><a id="7517" class="Symbol">)</a> <a id="7519" href="Categories.NaturalTransformation.Dinatural.html#6915" class="Bound">F</a><a id="7520" class="Symbol">)</a> <a id="7522" class="Symbol"></a>
<a id="7547" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="7550" class="Symbol">(</a><a id="7551" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="7556" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="7558" href="Categories.NaturalTransformation.Dinatural.html#7061" class="Generalizable">f</a><a id="7559" class="Symbol">)</a> <a id="7561" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7563" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="7565" href="Categories.NaturalTransformation.Dinatural.html#7481" class="Bound">β</a> <a id="7567" href="Categories.NaturalTransformation.Dinatural.html#7043" class="Generalizable">X</a> <a id="7569" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="7571" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="7574" class="Symbol">(</a><a id="7575" href="Categories.NaturalTransformation.Dinatural.html#7061" class="Generalizable">f</a> <a id="7577" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="7579" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="7583" class="Symbol">)</a> <a id="7585" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7587" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="7589" href="Categories.NaturalTransformation.Dinatural.html#7481" class="Bound">β</a> <a id="7591" href="Categories.NaturalTransformation.Dinatural.html#7045" class="Generalizable">Y</a>
<a id="7595" href="Categories.NaturalTransformation.Dinatural.html#7459" class="Function">extranatural-commʳ</a> <a id="7614" class="Symbol">{</a><a id="7615" class="Argument">f</a> <a id="7617" class="Symbol">=</a> <a id="7619" href="Categories.NaturalTransformation.Dinatural.html#7619" class="Bound">f</a><a id="7620" class="Symbol">}</a> <a id="7622" href="Categories.NaturalTransformation.Dinatural.html#7622" class="Bound">β</a> <a id="7624" class="Symbol">=</a> <a id="7626" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="7636" class="Symbol">(</a><a id="7637" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="7639" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a><a id="7648" class="Symbol">)</a> <a id="7650" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="7652" href="Categories.NaturalTransformation.Dinatural.html#908" class="Field">commute</a> <a id="7660" href="Categories.NaturalTransformation.Dinatural.html#7622" class="Bound">β</a> <a id="7662" href="Categories.NaturalTransformation.Dinatural.html#7619" class="Bound">f</a> <a id="7664" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="7666" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="7676" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a>
<a id="7689" class="Comment">-- the dual case, the bifunctor on the left is extranatural.</a>
<a id="7753" href="Categories.NaturalTransformation.Dinatural.html#7753" class="Function">extranaturalˡ</a> <a id="7767" class="Symbol">:</a> <a id="7769" class="Symbol">(</a><a id="7770" href="Categories.NaturalTransformation.Dinatural.html#7770" class="Bound">a</a> <a id="7772" class="Symbol">:</a> <a id="7774" class="Symbol"></a> <a id="7776" href="Categories.NaturalTransformation.Dinatural.html#7776" class="Bound">X</a> <a id="7778" class="Symbol"></a> <a id="7780" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="7783" class="Symbol">(</a><a id="7784" href="Categories.NaturalTransformation.Dinatural.html#7776" class="Bound">X</a> <a id="7786" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="7788" href="Categories.NaturalTransformation.Dinatural.html#7776" class="Bound">X</a><a id="7789" class="Symbol">)</a> <a id="7791" href="Categories.Category.Core.html#575" class="Function Operator"></a> <a id="7793" href="Categories.NaturalTransformation.Dinatural.html#7029" class="Generalizable">A</a><a id="7794" class="Symbol">)</a> <a id="7796" class="Symbol"></a>
<a id="7816" class="Symbol">(∀</a> <a id="7819" class="Symbol">{</a><a id="7820" href="Categories.NaturalTransformation.Dinatural.html#7820" class="Bound">X</a> <a id="7822" href="Categories.NaturalTransformation.Dinatural.html#7822" class="Bound">X</a> <a id="7825" href="Categories.NaturalTransformation.Dinatural.html#7825" class="Bound">f</a><a id="7826" class="Symbol">}</a> <a id="7828" class="Symbol"></a> <a id="7830" href="Categories.NaturalTransformation.Dinatural.html#7770" class="Bound">a</a> <a id="7832" href="Categories.NaturalTransformation.Dinatural.html#7820" class="Bound">X</a> <a id="7834" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7836" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="7839" class="Symbol">(</a><a id="7840" href="Categories.NaturalTransformation.Dinatural.html#7825" class="Bound">f</a> <a id="7842" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="7844" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="7848" class="Symbol">)</a> <a id="7850" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="7852" href="Categories.NaturalTransformation.Dinatural.html#7770" class="Bound">a</a> <a id="7854" href="Categories.NaturalTransformation.Dinatural.html#7822" class="Bound">X</a> <a id="7857" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="7859" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="7862" class="Symbol">(</a><a id="7863" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="7868" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="7870" href="Categories.NaturalTransformation.Dinatural.html#7825" class="Bound">f</a><a id="7871" class="Symbol">))</a> <a id="7874" class="Symbol"></a>
<a id="7894" href="Categories.NaturalTransformation.Dinatural.html#6746" class="Function">Extranaturalˡ</a> <a id="7908" href="Categories.NaturalTransformation.Dinatural.html#6915" class="Bound">F</a> <a id="7910" href="Categories.NaturalTransformation.Dinatural.html#7029" class="Generalizable">A</a>
<a id="7914" href="Categories.NaturalTransformation.Dinatural.html#7753" class="Function">extranaturalˡ</a> <a id="7928" href="Categories.NaturalTransformation.Dinatural.html#7928" class="Bound">a</a> <a id="7930" href="Categories.NaturalTransformation.Dinatural.html#7930" class="Bound">comm</a> <a id="7935" class="Symbol">=</a> <a id="7937" href="Categories.NaturalTransformation.Dinatural.html#2924" class="Function">dtHelper</a> <a id="7946" class="Keyword">record</a>
<a id="7957" class="Symbol">{</a> <a id="7959" href="Categories.NaturalTransformation.Dinatural.html#2434" class="Field">α</a> <a id="7967" class="Symbol">=</a> <a id="7969" href="Categories.NaturalTransformation.Dinatural.html#7928" class="Bound">a</a>
<a id="7975" class="Symbol">;</a> <a id="7977" href="Categories.NaturalTransformation.Dinatural.html#2491" class="Field">commute</a> <a id="7985" class="Symbol">=</a> <a id="7987" class="Symbol">λ</a> <a id="7989" href="Categories.NaturalTransformation.Dinatural.html#7989" class="Bound">f</a> <a id="7991" class="Symbol"></a> <a id="7993" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="7999" href="Categories.Category.Core.html#1096" class="Function">identityˡ</a> <a id="8009" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="8011" href="Categories.NaturalTransformation.Dinatural.html#7930" class="Bound">comm</a> <a id="8016" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="8018" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="8020" class="Symbol">(</a><a id="8021" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="8027" href="Categories.Category.Core.html#1096" class="Function">identityˡ</a><a id="8036" class="Symbol">)</a>
<a id="8042" class="Symbol">}</a>
<a id="8047" href="Categories.NaturalTransformation.Dinatural.html#8047" class="Function">extranatural-commˡ</a> <a id="8066" class="Symbol">:</a> <a id="8068" class="Symbol">(</a><a id="8069" href="Categories.NaturalTransformation.Dinatural.html#8069" class="Bound">β</a> <a id="8071" class="Symbol">:</a> <a id="8073" href="Categories.NaturalTransformation.Dinatural.html#578" class="Record">DinaturalTransformation</a> <a id="8097" href="Categories.NaturalTransformation.Dinatural.html#6915" class="Bound">F</a> <a id="8099" class="Symbol">(</a><a id="8100" href="Categories.Functor.Construction.Constant.html#461" class="Function">const</a> <a id="8106" href="Categories.NaturalTransformation.Dinatural.html#7029" class="Generalizable">A</a><a id="8107" class="Symbol">))</a> <a id="8110" class="Symbol"></a>
<a id="8135" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="8137" href="Categories.NaturalTransformation.Dinatural.html#8069" class="Bound">β</a> <a id="8139" href="Categories.NaturalTransformation.Dinatural.html#7043" class="Generalizable">X</a> <a id="8141" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8143" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="8146" class="Symbol">(</a><a id="8147" href="Categories.NaturalTransformation.Dinatural.html#7061" class="Generalizable">f</a> <a id="8149" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="8151" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="8155" class="Symbol">)</a> <a id="8157" href="Categories.Category.Core.html#595" class="Function Operator"></a> <a id="8159" href="Categories.NaturalTransformation.Dinatural.html#851" class="Field">α</a> <a id="8161" href="Categories.NaturalTransformation.Dinatural.html#8069" class="Bound">β</a> <a id="8163" href="Categories.NaturalTransformation.Dinatural.html#7045" class="Generalizable">Y</a> <a id="8165" href="Categories.Category.Core.html#656" class="Function Operator"></a> <a id="8167" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="8170" class="Symbol">(</a><a id="8171" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="8176" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="8178" href="Categories.NaturalTransformation.Dinatural.html#7061" class="Generalizable">f</a><a id="8179" class="Symbol">)</a>
<a id="8183" href="Categories.NaturalTransformation.Dinatural.html#8047" class="Function">extranatural-commˡ</a> <a id="8202" class="Symbol">{</a><a id="8203" class="Argument">f</a> <a id="8205" class="Symbol">=</a> <a id="8207" href="Categories.NaturalTransformation.Dinatural.html#8207" class="Bound">f</a><a id="8208" class="Symbol">}</a> <a id="8210" href="Categories.NaturalTransformation.Dinatural.html#8210" class="Bound">β</a> <a id="8212" class="Symbol">=</a> <a id="8214" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="8216" class="Symbol">(</a><a id="8217" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="8223" href="Categories.Category.Core.html#1096" class="Function">identityˡ</a><a id="8232" class="Symbol">)</a> <a id="8234" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="8236" href="Categories.NaturalTransformation.Dinatural.html#908" class="Field">commute</a> <a id="8244" href="Categories.NaturalTransformation.Dinatural.html#8210" class="Bound">β</a> <a id="8246" href="Categories.NaturalTransformation.Dinatural.html#8207" class="Bound">f</a> <a id="8248" href="Categories.Category.Core.html#3061" class="Function Operator"></a> <a id="8250" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="8256" href="Categories.Category.Core.html#1096" class="Function">identityˡ</a>
</pre></body></html>